Mengonversi antara Array dan List di Java

1. Ikhtisar

Artikel singkat ini akan menunjukkan bagaimana mengkonversi antara Array dan List menggunakan pustaka inti Java, Guava atau Koleksi Apache Commons.

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

2. Konversi Daftar ke Array

2.1. Menggunakan Plain Java

Mari kita mulai dengan konversi dari List ke Array menggunakan Java biasa :

@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceList.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.

2.2. Menggunakan Jambu Biji

Sekarang mari gunakan Guava API untuk konversi yang sama:

@Test public void givenUsingGuava_whenListConvertedToArray_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceList); }

3. Ubah Array menjadi List

3.1. Menggunakan Plain Java

Mari kita mulai dengan solusi Java biasa untuk mengonversi array ke Daftar :

@Test public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Arrays.asList(sourceArray); }

Perhatikan bahwa ini adalah daftar berukuran tetap yang masih akan didukung oleh larik. Jika Anda menginginkan ArrayList standar, Anda dapat membuat instance seperti ini:

List targetList = new ArrayList(Arrays.asList(sourceArray));

3.2. Menggunakan Jambu Biji

Sekarang mari gunakan Guava API untuk konversi yang sama:

@Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Lists.newArrayList(sourceArray); } 

3.3. Menggunakan Koleksi Commons

Dan terakhir, mari gunakan Apache Commons Collections - CollectionUtils.addAll API untuk mengisi elemen array ke dalam Daftar kosong:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = new ArrayList(6); CollectionUtils.addAll(targetList, sourceArray); }

4. Kesimpulan

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