正确遍历中删除list元素
来源:互联网 发布:淘宝hd ios5.1.1版本 编辑:程序博客网 时间:2024/05/06 01:08
以前一直没有注意,最近发现list在循环中使用remove方法其实是有问题的
List<String> list = new ArrayList<String>();list.add("1");list.add("2");list.add("3");for (String temp : list) { if ("3".equals(temp)) { list.remove(temp); }}
这种写法,会造成java.util.ConcurrentModificationException异常
List<String> list = new ArrayList<String>();list.add("1");list.add("2");list.add("3");for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); if ("1".equals(list.get(i))) { list.remove(i); }}
而这种写法,打印时会发现遍历list未遍历所有元素,只打印了1和3
造成这些情况的原因很简单,循环时remove掉List的元素,对象list的大小发生了变化,循环的索引也就发生了变化。
为避免以上情况发生,感觉还是用迭代器比较靠谱,使用Iterator的remove方法,具体做法如下:
List<String> list = new ArrayList<String>();list.add("1");list.add("2");list.add("3");Iterator<String> it = list.iterator();while (it.hasNext()) { String temp = it.next(); if ("3".equals(temp)) { it.remove(); }}
0 0
- 正确在遍历中删除List元素
- 正确遍历中删除list元素
- 正确遍历删除List中的元素
- 如何正确遍历删除List中的元素
- 如何正确遍历删除List中的元素
- 如何正确遍历删除List中的元素
- 正确遍历删除List中的元素
- 正确遍历删除List中的元素
- 正确遍历删除List中的元素
- List遍历中删除元素
- 删除List中元素的正确姿势
- 如何正确遍历删除List中的元素,你会吗?
- 如何正确遍历删除List中的元素,你会吗?
- 如何正确遍历删除List中的元素,你会吗?
- 如何正确遍历删除List中的元素,你会吗?
- 遍历List集合同时删除元素的正确方法
- 遍历List,删除其中元素的正确做法
- 如何正确遍历删除List中的元素,你会吗?
- React(二):React开发神器Webpack
- waiting for debugger
- 安卓-使用layout_weight属性自定义标题栏布局
- 简单的性能测试 | Apache AB
- 非常好用的JQuery自动补全插件bigautocomplete
- 正确遍历中删除list元素
- 如何在VS2013工程中添加head和source文件
- 做APp开发不出来头晕
- TCP 粘包
- flash
- IOS应用分发的三种方式
- android 点击空白处收起键盘
- Java实例说明 接口和抽象类的恩恩怨怨
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)