Menukar antara Array dan List di Java

1. Gambaran keseluruhan

Artikel ringkas ini akan menunjukkan cara menukar antara Array dan List menggunakan perpustakaan inti Java, Jambu atau Koleksi Apache Commons.

Artikel ini adalah sebahagian daripada siri "Java - Back to Basic" di Baeldung.

2. Tukar Senarai ke Array

2.1. Menggunakan Java Plain

Mari kita mulakan dengan penukaran dari List to 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 bahawa toArray (T baru [0]) adalah kaedah yang lebih disukai untuk menggunakan kaedah berbanding toArray (ukuran baru [ukuran]) . Seperti yang dibuktikan oleh Aleksey Shipilëv dalam catatan blognya, nampaknya lebih pantas, lebih selamat, dan lebih bersih.

2.2. Menggunakan Jambu Batu

Sekarang mari kita gunakan API Jambu Batu untuk penukaran yang sama:

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

3. Tukar Array ke Senarai

3.1. Menggunakan Java Plain

Mari kita mulakan dengan penyelesaian Java biasa untuk menukar array ke Daftar :

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

Perhatikan bahawa ini adalah senarai berukuran tetap yang masih akan disokong oleh array. Sekiranya anda mahukan ArrayList standard, anda boleh membuat contoh seperti itu:

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

3.2. Menggunakan Jambu Batu

Sekarang mari kita gunakan API Jambu Batu untuk penukaran 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 akhirnya, mari kita gunakan Koleksi Apache Commons - CollectionUtils.addSemua API untuk mengisi elemen array ke dalam Senarai 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

Pelaksanaan semua contoh dan coretan kod ini dapat dilihat di GitHub - ini adalah projek berasaskan Maven, jadi mudah untuk diimport dan dijalankan sebagaimana adanya.