การแปลงระหว่าง Array และ List ใน Java

1. ภาพรวม

บทความสั้น ๆ นี้จะแสดงวิธีการแปลงระหว่าง Array และ Listโดยใช้ Core Java libraries, Guava หรือ Apache Commons Collections

บทความนี้เป็นส่วนหนึ่งของซีรี่ส์“ Java - Back to Basic” ใน Baeldung

2. แปลงรายการเป็นอาร์เรย์

2.1. ใช้ Plain Java

เริ่มต้นด้วยการแปลงจากListเป็น Array โดยใช้ Java ธรรมดา :

@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceList.toArray(new Integer[0]); }

ทราบว่าtoArray (T ใหม่ [0])เป็นวิธีที่ต้องการจะใช้วิธีการที่ผ่านtoArray (T ใหม่ [ขนาด]) ดังที่ Aleksey Shipilëvพิสูจน์ในบล็อกโพสต์ของเขาดูเหมือนว่าเร็วกว่าปลอดภัยกว่าและสะอาดกว่า

2.2. ใช้ฝรั่ง

ตอนนี้เรามาใช้Guava APIสำหรับการแปลงเดียวกัน:

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

3. แปลง Array เป็นList

3.1. ใช้ Plain Java

เริ่มต้นด้วยโซลูชัน Java ธรรมดาสำหรับการแปลงอาร์เรย์เป็นรายการ :

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

โปรดทราบว่านี่คือรายการขนาดคงที่ซึ่งจะยังคงได้รับการสนับสนุนโดยอาร์เรย์ หากคุณต้องการArrayListมาตรฐานคุณสามารถสร้างอินสแตนซ์ได้ดังนี้:

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

3.2. ใช้ฝรั่ง

ตอนนี้เรามาใช้Guava APIสำหรับการแปลงเดียวกัน:

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

3.3. การใช้ Commons Collections

และสุดท้ายให้ใช้ Apache Commons Collections - CollectionUtils.addAll API เพื่อเติมองค์ประกอบของอาร์เรย์ลงในรายการว่าง:

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

4. สรุป

การใช้งานตัวอย่างและตัวอย่างโค้ดเหล่านี้สามารถพบได้บน GitHubซึ่งเป็นโครงการที่ใช้ Maven ดังนั้นจึงควรนำเข้าและเรียกใช้งานได้ง่ายเหมือนเดิม