Menukar Array kepada ArrayList dalam Java
Di Jawa, proses menukar tatasusunan kepada ArrayList kadangkala boleh mengelirukan, terutamanya apabila mempertimbangkan perubahan yang diperkenalkan dalam Java SE 1.4.2. Artikel ini menyelidiki selok-belok penukaran ini, memberikan pemahaman menyeluruh tentang pilihan yang tersedia.
Pada asalnya, kaedah Arrays.asList() membenarkan penciptaan ArrayList yang mengandungi elemen tatasusunan. Walau bagaimanapun, tingkah laku ini telah diubah suai dalam Java SE 1.5.0, membawa kepada ArrayList sebaliknya mengandungi tatasusunan itu sendiri.
Sebagai contoh, pertimbangkan coretan kod berikut:
Java SE 1.4 .2
int[] numbers = new int[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Java SE 1.5.0
int[] numbers = new Integer[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Perbezaan ketara terletak pada jenis ArrayList yang dibuat. Dalam 1.4.2, list ialah ArrayList yang mengandungi nilai Integer 1, 2 dan 3. Dalam 1.5.0 , list ialah ArrayList yang mengandungi nombor tatasusunan.
Perbezaan ini boleh membawa kepada hasil yang tidak dijangka, seperti :
Assert.assertTrue(list.indexOf(4) == -1);
Walaupun pernyataan ini berlaku dalam 1.4.2, ia gagal dalam 1.5.0 kerana senarai kini mengandungi nombor tatasusunan, bukan nilai Integer.
Untuk mengelakkan isu sedemikian dan mendapatkan ArrayList nilai Integer, satu penyelesaian ialah menggunakan kelas Integer yang membalut jenis int primitif :
Integer[] numbers = new Integer[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Dengan menggunakan kelas Integer, penukaran ini mencipta ArrayList yang mengandungi yang dikehendaki Nilai integer.
Atas ialah kandungan terperinci Bagaimanakah Saya Menukarkan Array Java kepada ArrayList dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!