String s[] = {"aa","bb","cc"};
List<String> sList = Arrays.asList(s);
for(String str:sList){ // 能周遊出各個元素
System.out.println(str);
}
System.out.println(sList.size()); // 為3
int i[] = {,,};
List intList = Arrays.asList(i); // intList中就一個Integer數組類型的對象,整個數組作為一個元素存進去的
for(Object o : intList){ // 就一個元素
System.out.println(o.toString());
}
Integer ob[]={,,};
List<Integer> objList = Arrays.asList(ob); // 數組裡的每一個元素都是作為list中的一個元素
for(int a:objList){
System.out.println(a);
}
/*
aa
bb
cc
3
- - - - - - - - - - -
[[email protected]
- - - - - - - - - - -
11
22
33
*/
Arrays.asList(),将一個數組轉化為一個List對象,這個方法會傳回一個ArrayList類型的對象, 這個ArrayList類并非java.util.ArrayList類,而是Arrays類的内部類Arrays.ArrayList,用這個對象對清單進行添加删除操作,就會抛出UnsupportedOperationException異常,因為在Arrays.ArrayList内部中,仍是一個定長數組。
// Arrays.ArrayList内部類中:
private final E[] a;
ArrayList(E[] array) {
a = Objects.requireNonNull(array);
}
// asList()
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
- 如果想根據數組得到一個新的 正常的 list,可以循環一個一個添加,也可以:
// 方法1
// java.util.ArrayList
ArrayList<Integer> copyArr = new ArrayList<Integer>(Arrays.asList(ob)); //這樣就得到一個新的list,可對其進行add,remove了
copyArr.add(); // 正常,不會報錯
// 方法2
ArrayList<Integer> copyArr = new ArrayList<Integer>();
Collections.addAll(copyArr, ob); // 或者建立一個空的list,把要轉換的數組用Collections.addAll添加進去
- 如果想将基本類型的數組如int[], long[]用asList轉成list,那麼我們可以選擇用apache commons-lang工具包裡的數組工具類ArrayUtils類的toObject()方法,非常友善,如下:

轉自:Java我人生(陳磊興)http://blog.csdn.net/chenleixing/article/details/43775127