| 特性 | java.util.ArrayList | Arrays.ArrayList (內部類) |
|---|---|---|
| 來源 | 集合框架標準實現 | Arrays.asList() 返回的內部類 |
| 長度可變 | 支持 add/remove | 固定長度,不支持結構修改 |
| 底層數據 | 動態擴容數組 | 直接引用傳入的原數組 |
| 序列化 | 支持 | 支持 |
List list = Arrays.asList("a", "b", "c");
list.add("d"); // 運行時拋出 UnsupportedOperationException
list.remove(0); // 同上
list.set(0, "x"); // 允許:修改元素值
// 需要可變列表時
List mutableList = new ArrayList<>(Arrays.asList("a", "b", "c"));
mutableList.add("d"); // 正常
// Java 9+ 便捷工廠方法
List list = List.of("a", "b", "c"); // 不可變
List mutable = new ArrayList<>(List.of("a", "b", "c"));
Arrays.asListArrays.java 內部類 ArrayList 定義(約 30 行代碼)
3. 對比 java.util.ArrayList 完整實現
Arrays.asList 返回的是「數組的列表視圖」,而非獨立集合。牢記「結構不可變」,需要增刪必須 new ArrayList() 包裹。