我有一个foreach循环遍历一个arraylist。
在for循环的主体中,我有一个if条件,它从列表中删除当前项。
for (item in mylist){
if(some condition is met)
mylist.remove(mylist.indexOf(item))
}
但是这会导致java.util.ConcurrentModificationException
被抛出,在groovy中执行此操作是违法的,如果是这样,我怎么能超越这个?
答案 0 :(得分:0)
使用迭代器可以轻松地在迭代列表时进行删除。
我在这里提供一个小的(不言自明的)例子:
List<String> foo = new ArrayList<String>();
// fill foo with data
Iterator<String> it = foo.iterator();
while (it.hasNext()) {
String s = it.next();
if (s.equals("B"))
foo.remove("B");
}
答案 1 :(得分:0)