不要在foreach循环里进行元素的add/remove操作
2017-02-13 00:00
375 查看
一、反例
结果:
二、正例
结果:1
public class ForeachTest { public static void main(String[] args) { List<String> a = new ArrayList<>(); a.add("1"); a.add("2"); for (String str : a) { if("2".equals(str)){ a.remove(str); } } //遍历结果 for (String str : a) { System.out.println(str); } } }
结果:
二、正例
public class ForeachTest { public static void main(String[] args) { List<String> a = new ArrayList<>(); a.add("1"); a.add("2"); Iterator<String> it = a.iterator(); while (it.hasNext()) { String str = (String) it.next(); if("2".equals(str)){ it.remove(); } } //遍历结果 for (String str : a) { System.out.println(str); } } }
结果:1
相关文章推荐
- 不要在 foreach 循环里进行元素的 remove / add 操作
- 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁
- 不要在foreach 循环里进行集合元素的 remove/add 操作
- 不要在 foreach 循环里进行元素的 remove/add 操作
- 不要在foreach循环里进行元素的remove/add操作
- 不要在 foreach 循环里进行元素的 remove / add 操作
- 不要在foreach循环里进行元素的remove/add操作
- foreach循环里进行元素的remove/add操作
- foreach循环中为什么不要进行remove/add操作
- foreach循环中为什么不要进行remove/add操作
- C++循环链表中进行元素的翻转
- 转:《Effective C#》Item 11:提倡使用foreach语句来进行循环操作
- foreach循环与迭代器循环 删除插入元素的区别
- 接受POST表单传过来的信息 可以用foreach循环进行遍历操作
- 利用forEach循环Dom元素…
- 《Effective C#》Item 11:提倡使用foreach语句来进行循环操作
- C++循环链表中进行元素的翻转
- foreach 循环,删除list中的元素是报错
- Jsp中<c:foreach>如何循环得到值,进行修改
- 数组最后一个元素的 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁