ใช้เมธอด toArray() ของ LinkedList (มาจาก Collection Interface) มี 2 รูปแบบ
1. toArray() -> Object[] (ต้อง Cast เอง)
import java.util.Arrays;
import java.util.LinkedList;
public class LinkedListToArray {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("JavaFX");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
// toArray() คืน Object[]
Object[] objArray = list.toArray();
// Cast เป็น String[] เอง
String[] strArray = new String[objArray.length];
for (int i = 0; i < objArray.length; i++) {
strArray[i] = (String) objArray[i];
}
System.out.println(Arrays.toString(strArray));
}
}
2. toArray(T[] a) -> T[] (Type-Safe, แนะนำ)
// ส่ง Array ขนาด 0 เข้าไป จะได้ Array ชนิดที่ถูกต้องกลับมา String[] strArray = list.toArray(new String[0]); // Java 11+ ใช้ Method Reference String[] strArray11 = list.toArray(String[]::new); System.out.println(Arrays.toString(strArray));
ผลลัพธ์
[JavaFX, Java, WebGL, OpenCV]
คำอธิบาย
toArray()ไม่มี Argument -> คืนObject[]ต้อง Cast เองtoArray(new String[0])- ส่ง Array ขนาด 0 เป็น Template -> คืนString[]โดยตรง (Type-Safe)toArray(String[]::new)- Java 11+ ใช้ Constructor Reference สะดวกกว่า- ลำดับ Element คงเดิม (First to Last)
Performance Note
toArray(new String[0]) สร้าง Array ใหม่ขนาดเท่ากับ List Size (Optimal) ไม่ต้องสร้าง Array ใหญ่ก่อนแล้ว Trim