Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách chuyển LinkedList thành Array trong Java

LinkedList cung cấp phương thức toArray() để chuyển thành mảng.

Cách 1: toArray() trả về Object[]

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"); list.add("OpenNLP");
        
        Object[] objArray = list.toArray();
        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));
    }
}

Cách 2: toArray(T[] a) - Trả về typed array (Khuyên dùng)

String[] strArray = list.toArray(new String[0]);
// Hoặc Java 11+: list.toArray(String[]::new);
System.out.println(Arrays.toString(strArray));
[JavaFX, Java, WebGL, OpenCV, OpenNLP]

Giải thích

  • toArray(): Trả về Object[], phải cast thủ công.
  • toArray(new String[0]): Truyền mảng rỗng kiểu String → trả về String[] trực tiếp, không cần cast. Hiệu suất tốt (JVM tối ưu).
  • toArray(String[]::new) (Java 11+): Dùng constructor reference, code sạch hơn.

Lưu ý: Mảng trả về là copy mới, độc lập với LinkedList gốc. Thay đổi mảng không ảnh hưởng list và ngược lại.