api:
public static <T> List<T> asList(T... a)
-
返回一個受指定數組支持的固定大小的列表。(對返回列表的更改會“直接寫”到數組。)此方法同
Collection.toArray()
一起,充當了基於數組的 API 與基於 collection 的 API 之間的橋梁。返回的列表是可序列化的,並且實現了RandomAccess
。此方法還提供了一個創建固定長度的列表的便捷方法,該列表被初始化為包含多個元素:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
-
- 參數:
-
a
- 支持列表的數組。 - 返回:
- 指定數組的列表視圖。
遇到的問題:
java.lang.UnsupportedOperationException
在使用Arrays.asList()后調用add,remove這些method時出現 java.lang.UnsupportedOperationException異常。
原因:
這是由於Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。
Arrays$ArrayList和ArrayList都是繼承AbstractList,remove,add等 method在AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。
ArrayList override這些method來對list進行操作,但是Arrays$ArrayList沒有override remove(),add()等,所以throw UnsupportedOperationException。
解決辦法:
String[] arr ={"a","b","c"};
List<String> list = Arrays.asList(arr);
List<String> arrList = new ArrayList<String>(list);