UnsupportedOperationException異常,關於Arrays.asList()轉的List報錯

關於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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章