Mengubah Antara Array dan Set di Java

1. Ikhtisar

Dalam artikel singkat ini kita akan melihat konversi antara array dan Set - pertama menggunakan java biasa, lalu Guava dan pustaka Koleksi Commons dari Apache.

Artikel ini adalah bagian dari seri “Java - Kembali ke Dasar” di Baeldung.

2. Konversi Array ke Set

2.1. Menggunakan Plain Java

Pertama-tama mari kita lihat bagaimana mengubah array menjadi satu Set menggunakan Java biasa :

@Test public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(Arrays.asList(sourceArray)); }

Alternatifnya, Set dapat dibuat terlebih dahulu dan kemudian diisi dengan elemen array:

@Test public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(); Collections.addAll(targetSet, sourceArray); }

2.2. Menggunakan Google Guava

Selanjutnya, mari kita lihat konversi Jambu biji dari array ke Set :

@Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = Sets.newHashSet(sourceArray); }

2.3. Menggunakan Koleksi Apache Commons

Terakhir, mari lakukan konversi menggunakan pustaka Commons Collection dari Apache:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(6); CollectionUtils.addAll(targetSet, sourceArray); }

3. Ubah Set ke Array

3.1. Menggunakan Plain Java

Sekarang mari kita lihat kebalikannya - mengubah Set yang ada menjadi array :

@Test public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceSet.toArray(new Integer[0]); }

Perhatikan, bahwa toArray (T baru [0]) adalah cara yang lebih disukai untuk menggunakan metode ini daripada toArray (T [ukuran] baru) . Seperti yang dibuktikan Aleksey Shipilëv dalam posting blognya, tampaknya lebih cepat, lebih aman, dan lebih bersih.

3.2. Menggunakan Jambu Biji

Berikutnya - solusi Jambu Biji:

@Test public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceSet); }

Perhatikan bahwa kami menggunakan Ints API dari Guava, jadi solusi ini khusus untuk tipe data yang kami kerjakan.

4. Kesimpulan

Penerapan semua contoh dan cuplikan kode ini dapat ditemukan di Github - ini adalah proyek berbasis Maven, jadi semestinya mudah untuk mengimpor dan menjalankan apa adanya.