在循环列表时,我想根据条件删除列表中的项目。请参阅下面的代码。
这给了我一个ConcurrentModification
例外。
for (Object a : list) {
if (a.getXXX().equalsIgnoreCase("AAA")) {
logger.info("this is AAA........should be removed from the list ");
list.remove(a);
}
}
如何才能做到这一点?
for (Iterator<String> iter = list.listIterator(); iter.hasNext(); ) {
String a = iter.next();
if (...) {
iter.remove();
}
}
额外假设该列表是字符串。
正如已经回答的那样,list.iterator()
是需要的。这列表迭代器也可以做一些导航。
----------
Update
正如@AyushiJain 评论的那样,有
list.removeIf(...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)