Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

มีกี่วิธีแปลง Array เป็น ArrayList ใน Java?

มีหลัก 3 วิธี** หลัก ในการแปลง Array -> ArrayList

วิธีที่ 1: วนลูป Add ทีละ Element (เข้าใจง่าย)

String[] array = {"Java", "Python", "Go"};
ArrayList<String> list = new ArrayList<>();
for (String s : array) {
    list.add(s);
}

วิธีที่ 2: ใช้ Arrays.asList() + ArrayList Constructor (มาตรฐาน)

String[] array = {"Java", "Python", "Go"};
List<String> tempList = Arrays.asList(array); // Fixed-size List
ArrayList<String> list = new ArrayList<>(tempList); // Copy เป็น ArrayList จริง
// หรือ One-liner
ArrayList<String> list = new ArrayList<>(Arrays.asList(array));

วิธีที่ 3: ใช้ Collections.addAll() (แนะนำสำหรับ Performance)

String[] array = {"Java", "Python", "Go"};
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, array); // เพิ่มทั้ง Array เข้าไปทีเดียว

ผลลัพธ์ทุกวิธี

[Java, Python, Go]

ข้อควรระวังสำคัญ

วิธี คืนค่า ข้อควรระวัง
Arrays.asList() ตรงๆ Fixed-size List ไม่ใช่ ArrayList add/remove จะ Exception ต้อง Wrap ด้วย new ArrayList()
Primitive Array (int[]) List<int[]> ไม่ทำ Autoboxing ต้องใช้ Loop หรือ Stream: Arrays.stream(arr).boxed().collect(...)

Java 8+ Stream Way (สำหรับ Primitive Array)

int[] primitiveArray = {1, 2, 3};
List<Integer> list = Arrays.stream(primitiveArray)
    .boxed()
    .collect(Collectors.toList());

Java 9+ Factory Methods (Immutable)

// สร้าง Immutable List จาก Array โดยตรง
List<String> immutable = List.of(array); // Java 11+
// หรือ
List<String> immutable = List.copyOf(Arrays.asList(array));

สรุปแนะนำ

  • General: new ArrayList<>(Arrays.asList(array))
  • Performance Critical: Collections.addAll(list, array)
  • Primitive Array: Stream API .boxed().collect(...)
  • Immutable Result: List.of() หรือ List.copyOf()