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

Penjelasan terperinci tentang lima algoritma penyahduplikasi tatasusunan Java klasik

WBOY
WBOYasal
2023-12-23 10:01:19827semak imbas

. 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));
    }
}
  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));
    }
}
  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));
    }
}
  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));
    }
}
  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));
    }
}
    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:
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