2013-06-19 40 views
1

在運行以下代碼時,UnsupportedOperationException引發的方法爲.remove()運行以下代碼時,UnsupportedOperationException拋出.remove()方法

這段代碼:

List list = Array.asList(array) ; 
list.remove(0); 
+3

確實。你的問題是什麼? –

+0

每次遇到有關Java的問題時,首先應該做的事情是閱讀文檔。在這種情況下,您需要google [「_java 7 Arrays_」](http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html)並查找_asList()_方法。大多數問題的答案在第一句中。 – jahroy

回答

10

Arrays#asList

返回固定大小的列表中指定數組支持

因此,您不能添加/從中刪除元素。

爲了克服這個問題,你可以這樣做:

List modifiableList = new ArrayList(Arrays.asList(array)); 
2

如果你想從對象的列表其相當類比的方式來直接做刪除一些對象。您需要使用Iterator

List<Integer> l = new ArrayLIst<>(); // or List<Integer> l = new ArrayLIst<Integer>(); 
Iterator<Integer> iter = l.iterator(); 
while (iter.hasNext()) { 
    if (iter.next().intValue() == 5) { 
     iter.remove(); 
    } 
} 
相關問題