দ্রষ্টব্য: আমি Iterator#remove()পদ্ধতি সম্পর্কে সচেতন ।
নিম্নলিখিত কোড নমুনা, আমি বুঝতে পারে না কেন List.removeএ mainপদ্ধতি ছোঁড়ার ConcurrentModificationExceptionকিন্তু না এ removeপদ্ধতি।
public class RemoveListElementDemo {
private static final List<Integer> integerList;
static {
integerList = new ArrayList<Integer>();
integerList.add(1);
integerList.add(2);
integerList.add(3);
}
public static void remove(Integer toRemove) {
for(Integer integer : integerList) {
if(integer.equals(toRemove)) {
integerList.remove(integer);
}
}
}
public static void main(String... args) {
remove(Integer.valueOf(2));
Integer toRemove = Integer.valueOf(3);
for(Integer integer : integerList) {
if(integer.equals(toRemove)) {
integerList.remove(integer);
}
}
}
}
ConcurrentModificationExceptionএবং অন্যটি তা করে না।
return;করে এটি ঠিক করেছি।
Iterator#remove()। কেন আপনি এইভাবে এটি করছেন?