การเริ่มต้น (Initialize) List ใน Java
List เป็นอินเทอร์เฟซ ต้องใช้คลาสที่ implement เช่น ArrayList, LinkedList, Vector คลาสยอดนิยมคือ ArrayList (อาร์เรย์ไดนามิก)
วิธีการเริ่มต้นต่างๆ
1. สร้างเปล่า แล้ว add() ทีละตัว
List integerList = new ArrayList<>();
integerList.add(25);
integerList.add(60);
List stringList = new ArrayList<>();
stringList.add("Java");
stringList.add("Program");
2. ใช้ Arrays.asList() (Fixed-size)
List list = Arrays.asList("Java", "Program", "Python");
// ไม่สามารถ add/remove ได้ (UnsupportedOperationException)
3. ใช้ List.of() (Java 9+) - Immutable
List immutableList = List.of("Java", "Program", "Python");
// ไม่สามารถแก้ไขได้เลย
4. ใช้ Stream (Java 8+)
List list = Stream.of(25, 60, 75).collect(Collectors.toList());
5. Double Brace Initialization (ไม่แนะนำ)
List list = new ArrayList<>() {{
add("Java");
add("Program");
}};
// สร้าง anonymous class - ใช้หน่วยความจำมาก อาจทำให้ memory leak
ตัวอย่างโค้ดสมบูรณ์
import java.util.*;
public class Demo {
public static void main(String[] args) {
System.out.println("=== เริ่มต้น Integer List ===");
List integerList = new ArrayList<>();
integerList.add(25);
integerList.add(60);
System.out.println("องค์ประกอบ: " + integerList);
System.out.println("\n=== เริ่มต้น String List ===");
List stringList = new ArrayList<>();
stringList.add("Java");
stringList.add("Program");
System.out.println("องค์ประกอบ: " + stringList);
System.out.println("\n=== ใช้ List.of() (Java 9+) ===");
List modernList = List.of("Java", "Python", "Go");
System.out.println("Immutable List: " + modernList);
}
}
ผลลัพธ์
=== เริ่มต้น Integer List ===
องค์ประกอบ: [25, 60]
=== เริ่มต้น String List ===
องค์ประกอบ: [Java, Program]
=== ใช้ List.of() (Java 9+) ===
Immutable List: [Java, Python, Go]
ตัวอย่างแบบ OOP (Encapsulation)
import java.util.*;
public class Demo {
static void initializeIntList() {
List list = new ArrayList<>();
list.add(25);
list.add(60);
System.out.println("Integer List: " + list);
}
static void initializeStringList() {
List list = new ArrayList<>();
list.add("Java");
list.add("Program");
System.out.println("String List: " + list);
}
public static void main(String[] args) {
System.out.println("Required packages imported");
initializeIntList();
initializeStringList();
}
}
การเลือกใช้
| สถานการณ์ | วิธีที่แนะนำ |
|---|---|
| เพิ่ม/ลบข้อมูลบ่อย | new ArrayList<>() + add() |
| ข้อมูลคงที่ ไม่เปลี่ยนแปลง | List.of() (Java 9+) |
| ต้องสร้างจากอาร์เรย์มีอยู่ | Arrays.asList() แล้ว wrap ด้วย new ArrayList() |
| แปลงจาก Stream | .collect(Collectors.toList()) |