遍历集合删除其中的元素时可能会抛出java.util.ConcurrentModificationException异常。
下面的代码就会抛出异常:
1: for (String s : map.keySet()) {
2: if ("val".equals(s))
3: map.remove(s);
4: }
怎么解决这个问题呢?用迭代器:
1: Iteratorit = map.keySet().iterator();
2: while (it.hasNext()) {
3: String obj = it.next();
4: if ("2".equals(obj)) {
5: it.remove();
6: }
7: }
调用迭代器的remove方法可以安全的删除元素:it.remove();
如果用集合的remove方法:map.remove(s); 就会报java.util.ConcurrentModificationException异常:
1: Iteratorit = map.keySet().iterator();
2: while (it.hasNext()) {
3: String obj = it.next();
4: if ("2".equals(obj)) {
5: // it.remove();
6: map.remove(obj);
7: }
8: }