Rumah > Java > javaTutorial > Penjelasan terperinci tentang lima algoritma penyahduplikasi tatasusunan Java klasik

Penjelasan terperinci tentang lima algoritma penyahduplikasi tatasusunan Java klasik

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-12-23 10:01:19
asal
941 orang telah melayarinya

. Berikut akan memperkenalkan lima algoritma penyahduplikasi tatasusunan Java klasik dan menyediakan contoh kod yang sepadan.

Penjelasan terperinci tentang lima algoritma penyahduplikasi tatasusunan Java klasik

Gunakan HashSet

HashSet ialah kelas koleksi dalam Java yang mengalih keluar elemen pendua secara automatik. Ciri ini boleh digunakan untuk mencapai penyahduplikasian tatasusunan dengan cepat.

Contoh Kod:

import java.util.Arrays;
import java.util.HashSet;

public class ArrayDeduplicateExample {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 2, 4, 3, 5};
        
        HashSet<Integer> set = new HashSet<>();
        for (int i : array) {
            set.add(i);
        }
        
        int[] result = new int[set.size()];
        int index = 0;
        for (int i : set) {
            result[index++] = i;
        }
        
        System.out.println(Arrays.toString(result));
    }
}
Salin selepas log masuk
  1. Menggunakan TreeSet
    TreeSet ialah kelas koleksi tersusun di Java yang menyahduplikasi dan mengisih elemen secara automatik. Penyahduplikasian tatasusunan boleh dicapai dengan menambahkan elemen dalam tatasusunan kepada TreeSet dan kemudian menukar TreeSet menjadi tatasusunan.
    Contoh kod:
import java.util.Arrays;
import java.util.TreeSet;

public class ArrayDeduplicateExample {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 2, 4, 3, 5};
        
        TreeSet<Integer> set = new TreeSet<>();
        for (int i : array) {
            set.add(i);
        }
        
        Integer[] result = set.toArray(new Integer[0]);
        int[] deduplicatedArray = Arrays.stream(result).mapToInt(Integer::intValue).toArray();
        
        System.out.println(Arrays.toString(deduplicatedArray));
    }
}
Salin selepas log masuk
  1. Menggunakan Stream API
    API Strim yang diperkenalkan dalam Java 8 dan ke atas boleh memudahkan operasi penyahduplikasian tatasusunan. Dengan menukar tatasusunan kepada strim, gunakan kaedah strim yang berbeza untuk mengalih keluar unsur pendua, dan kemudian menukarnya kepada tatasusunan.
    Contoh kod:
import java.util.Arrays;

public class ArrayDeduplicateExample {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 2, 4, 3, 5};
        
        int[] deduplicatedArray = Arrays.stream(array).distinct().toArray();
        
        System.out.println(Arrays.toString(deduplicatedArray));
    }
}
Salin selepas log masuk
  1. Menggunakan gelung berganda
    Gelung berganda ialah algoritma penyahduplikasi tatasusunan biasa Dengan membandingkan elemen bersebelahan, elemen pendua ditetapkan kepada nilai haram yang ditentukan, dan kemudian nilai haram dialih keluar.
    Contoh kod:
import java.util.Arrays;

public class ArrayDeduplicateExample {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 2, 4, 3, 5};
        
        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] != Integer.MIN_VALUE) {
                for (int j = i + 1; j < array.length; j++) {
                    if (array[i] == array[j]) {
                        array[j] = Integer.MIN_VALUE;
                    }
                }
            }
        }
        
        int count = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] != Integer.MIN_VALUE) {
                array[count++] = array[i];
            }
        }
        
        int[] deduplicatedArray = Arrays.copyOf(array, count);
        
        System.out.println(Arrays.toString(deduplicatedArray));
    }
}
Salin selepas log masuk
  1. Menggunakan HashMap
    HashMap ialah struktur jadual cincang dalam Java Elemen tatasusunan dimasukkan sebagai kunci dengan menggunakan kaedah letak Elemen pendua dialih keluar secara automatik jika kunci sudah wujud.
    Contoh kod:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class ArrayDeduplicateExample {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 2, 4, 3, 5};
        
        Map<Integer, Object> map = new HashMap<>();
        for (int i : array) {
            map.put(i, null);
        }
        
        int[] deduplicatedArray = new int[map.size()];
        int index = 0;
        for (int i : map.keySet()) {
            deduplicatedArray[index++] = i;
        }
        
        System.out.println(Arrays.toString(deduplicatedArray));
    }
}
Salin selepas log masuk
    Di atas ialah pengenalan terperinci dan contoh kod lima algoritma penyahduplikasi tatasusunan Java klasik. Dalam aplikasi praktikal, memilih algoritma penyahduplikasian yang sesuai mengikut keadaan tertentu boleh meningkatkan prestasi dan kebolehbacaan program.

Atas ialah kandungan terperinci Penjelasan terperinci tentang lima algoritma penyahduplikasi tatasusunan Java klasik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan