Lima kaedah penduaan tatasusunan Java yang cekap didedahkan
Semasa proses pembangunan Java, kami sering menghadapi situasi di mana kami perlu menyahduplikasi tatasusunan. Penyahduplikasian adalah untuk mengalih keluar elemen pendua dalam tatasusunan dan menyimpan hanya satu. Artikel ini akan memperkenalkan lima kaedah penyahduplikasi tatasusunan Java yang cekap dan menyediakan contoh kod khusus.
Kaedah 1: Gunakan HashSet untuk mengalih keluar pendua
HashSet ialah koleksi tidak tertib, bukan pendua yang akan mengalih keluar pendua secara automatik apabila menambah elemen. Oleh itu, kita boleh menggunakan ciri-ciri HashSet untuk menyahduplikasi tatasusunan.
public static int[] removeDuplicates(int[] arr) { Set<Integer> set = new HashSet<>(); for (int i = 0; i < arr.length; i++) { set.add(arr[i]); } int[] result = new int[set.size()]; int index = 0; for (int num : set) { result[index++] = num; } return result; }
Kaedah 2: Gunakan LinkedHashSet untuk mengekalkan susunan elemen tanpa pendua
LinkedHashSet ialah set bukan pendua tertib, yang akan diisih mengikut susunan sisipan elemen. Dengan menggunakan LinkedHashSet anda boleh mengalih keluar pendua dan mengekalkan susunan elemen.
public static int[] removeDuplicates(int[] arr) { Set<Integer> set = new LinkedHashSet<>(); for (int i = 0; i < arr.length; i++) { set.add(arr[i]); } int[] result = new int[set.size()]; int index = 0; for (int num : set) { result[index++] = num; } return result; }
Kaedah 3: Gunakan API Strim untuk menyahduplikasi tatasusunan
Java 8 memperkenalkan API Strim, yang boleh menukar tatasusunan kepada strim melalui kaedah stream() dan kemudian melaksanakan penyahduplikasian melalui kaedah distinct().
import java.util.Arrays; import java.util.stream.Collectors; public static int[] removeDuplicates(int[] arr) { return Arrays.stream(arr).distinct().toArray(); }
Kaedah 4: Gunakan TreeSet untuk mengisih dan penyahduplikasi
TreeSet ialah set bukan pendua tertib yang menyusun elemen mengikut susunan semula jadinya. Tatasusunan boleh dinyahduplikasi dan diisih dengan menggunakan TreeSet.
public static int[] removeDuplicates(int[] arr) { Set<Integer> set = new TreeSet<>(); for (int i = 0; i < arr.length; i++) { set.add(arr[i]); } int[] result = new int[set.size()]; int index = 0; for (int num : set) { result[index++] = num; } return result; }
Kaedah 5: Gunakan BitSet untuk penyahduplikasian
BitSet ialah koleksi yang digunakan untuk menyimpan nilai bit dan juga boleh digunakan untuk penyahduplikasian. Kita boleh mengalih keluar elemen pendua dengan menetapkan nilai bit yang sepadan kepada benar.
public static int[] removeDuplicates(int[] arr) { BitSet bitSet = new BitSet(); for (int num : arr) { bitSet.set(num); } int[] result = new int[bitSet.cardinality()]; int index = 0; for (int i = bitSet.nextSetBit(0); i >= 0; i = bitSet.nextSetBit(i + 1)) { result[index++] = i; } return result; }
Di atas ialah lima kaedah penyahduplikasi tatasusunan Java yang cekap. Memilih kaedah yang sesuai mengikut situasi sebenar boleh memproses tatasusunan dengan lebih cekap semasa proses penyahduplikasian. Saya harap artikel ini akan membantu masalah deduplikasi tatasusunan anda dalam pembangunan Java!
Atas ialah kandungan terperinci Mendedahkan Lima Kaedah Deduplikasi Tatasusunan Java yang Cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!