api:
public static <T> List<T> asList(T... a)
Collection.toArray()
一起,充當了基於數組的 API 與基於 collection 的 API 之間的橋梁。返回的列表是可序列化的,並且實現了 RandomAccess
。
此方法還提供了一個創建固定長度的列表的便捷方法,該列表被初始化為包含多個元素:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
a
- 支持列表的數組。遇到的問題:
在使用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);