關於Arrays.asList()轉的List報錯
有這段代碼
String str = "1,2,3,4,5,6,7";
String[] split = str.split(",");
List<String> ids = Arrays.asList(split);
List<String> list = new ArrayList<String>();
list.add("1");
for(int i = 0,n = list.size() ; i < n ; i++){
if (ids.contains(list.get(i))){
System.out.println(ids.get(i));
ids.remove(String.valueOf(list.get(i)));
}
}
System.out.println(ids);
結果就是
java.lang.UnsupportedOperationException
原因:
Arrays.asList()得到的ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList,它是Arrays類自己定義的一個內部類!這個內部類沒有實現add()、remove()方法,而是直接使用它的父類AbstractList的相應方法。
解決辦法: 再轉一下
List idss = new ArrayList(ids);