這可能是重複的,但我看不到任何與此錯誤的問題,所以道歉,如果是這樣。ArrayList刪除方法不起作用?
我正在嘗試使用remove()
方法從我的ArrayList
中刪除整數,但它給了我java.lang.UnsupportedOperationException
。刪除方法應該採取int
或整數我的理解,或從ArrayList
值,但這些似乎並沒有工作,並給出相同的錯誤。
我也嘗試使用「深度」作爲index
,因爲這是我想要刪除的index
。
這裏是我的代碼:
import java.util.*;
public class EP{
public static List<Integer> items = Arrays.asList(12, 13, 48, 42, 38, 2827, 827, 828, 420);
public static void main(String[]args){
System.out.println("Exam List");
for(Integer i: items){
System.out.println(i);
}
Scanner scan = new Scanner(System.in);
System.out.println("Enter depth");
int depth = scan.nextInt();
System.out.println("Enter value");
int value = scan.nextInt();
System.out.println(mark(depth, value));
}
public static int mark(int depth, int value){
int ret = -1; //This ensures -1 is returned if it cannot find it at the specified place
for(Integer i: items){
if(items.get(depth) == (Integer)value){ //This assummes depth starts at 0
ret = value;
items.remove(items.get(depth)); // has UnsupportedOperationException
}
}
System.out.println("Updated Exam List");
for(Integer j: items){
System.out.println(j);
}
return ret;
}
}
請格式化您的代碼。這完全難以辨認。 –
Arrays.asList()不返回ArrayList。我會喜歡你發現是否可以修改由Arrays.asList()返回的列表實現。查看使用簡單for循環迭代,使用增強for循環迭代和使用List迭代器迭代之間的區別。另請參閱您可以在迭代使用Iterator或增強for循環時修改列表,以及何時不能這樣做。當你研究這些時,你將清楚你在代碼中所做的一切,以及你正在接受的例外。在你的情況下修改雖然迭代不是異常的原因,但研究仍然 –
請參閱[this](http://stackoverflow.com/a/158269/5394855)後有關從'Array'創建'ArrayList'的帖子。 –