Arrays工具類裡提供了asList(Object... a)方法,該方法可以把一個數組、或指定個數的對象轉換成一個List集合,這個List集合既不是ArrayList實作類別的執行個體,也不是Vector實作類別的執行個體,而是Arrays的內部類ArrayList的執行個體。
Arrays.ArrayList是一個固定長度的List集合,程式只能遍曆訪問該集合裡的元素,不可增加、刪除該集合裡的元素 。
1 程式碼範例
import java.util.*;public class FixedSizeList{public static void main(String[] args){List fixedList = Arrays.asList("PPT完全自學手冊", "Windows API");// 擷取fixedList的實作類別,將輸出Arrays$ArrayListSystem.out.println(fixedList.getClass());// 使用方法引用遍曆集合元素fixedList.forEach(System.out::println);// 試圖增加、刪除元素都會引發UnsupportedOperationException異常fixedList.add("駭客攻防");fixedList.remove("Windows API");}}
2 運行結果
class java.util.Arrays$ArrayList
PPT完全自學手冊
Windows API
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at FixedSizeList.main(FixedSizeList.java:14)
3 程式碼分析
代碼最後兩行對於普通的List集合完全正常,但如果試圖通過這兩個方法來增加,刪除Arrays.ArrayList集合中的元素,將會引發異常。但會在運行倒數第2行時引發UnsupportedOperationException異常。