您的位置:首页 > 其它

循环中安全删除集合元素

2018-10-06 12:09 239 查看

在循环中删除集合元素可能出现数组越界的问题,比如:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer item : list) {
System.out.println(item);
if (item == 1) {
list.remove(item);
}
}

正确的做法是使用迭代器:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer i = iterator.next();
System.out.println(i);
if (i == 1)
iterator.remove();
}

for (Integer i : list) {
System.out.println(i);
}

如果是 ArrayList,也可以倒序遍历时删除。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: