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

Có bao nhiêu cách chuyển Array thành ArrayList trong Java?

Có 3 cách phổ biến để chuyển mảng (T[]) thành ArrayList<T>:

Cách 1: Duyệt mảng, add từng phần tử

String[] stringArray = {"JavaFX", "Java", "WebGL"};
ArrayList<String> arrayList = new ArrayList<>();

for (int i = 0; i < stringArray.length; i++) {
    arrayList.add(stringArray[i]);
}

Cách 2: Dùng Arrays.asList() (Khuyên dùng - ngắn gọn)

import java.util.Arrays;
import java.util.ArrayList;

String[] stringArray = {"JavaFX", "Java", "WebGL"};
List<String> list = Arrays.asList(stringArray); // Trả về List fixed-size
ArrayList<String> arrayList = new ArrayList<>(list); // Copy sang ArrayList mutable

Lưu ý: Arrays.asList() trả về List fixed-size (không add/remove được), backed by array gốc. Cần wrap trong new ArrayList<>() để có ArrayList đầy đủ tính năng.

Cách 3: Dùng Collections.addAll()

import java.util.Collections;
import java.util.ArrayList;

String[] stringArray = {"JavaFX", "Java", "WebGL"};
ArrayList<String> arrayList = new ArrayList<>();
Collections.addAll(arrayList, stringArray); // Hiệu quả, null-safe

So sánh

CáchĐộ phức tạpMutable?Null-safe?Ghi chú
For loop addO(n)CóTự xử lýKiểm soát hoàn toàn
Arrays.asList() + new ArrayList()O(n)CóCóNgắn gọn, phổ biến nhất
Collections.addAll()O(n)CóCóHiệu suất tốt, null-safe

Java 9+: List.of() (Immutable)

// Immutable list - không add/remove được
List<String> immutableList = List.of(stringArray);

// Mutable copy
ArrayList<String> mutableList = new ArrayList<>(List.of(stringArray));

Khuyên dùng: new ArrayList<>(Arrays.asList(array)) (Java 8) hoặc new ArrayList<>(List.of(array)) (Java 9+).