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$ArrayList
System.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異常。