循环中安全删除集合元素
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,也可以倒序遍历时删除。
相关文章推荐
- 循环的时候如何安全地删除java集合的元素
- 犯了一个菜鸟必备的很郁闷的错误:for循环删除LinkedList集合中元素
- Java中如何循环删除一个集合(如List)中的多个元素
- Java中如何循环删除一个集合(如List)中的多个元素
- foreach循环删除集合中的元素出现ConcurrentModificationException异常
- java循环中如何删除集合中的元素
- 在循环中删除集合的元素
- Java中如何循环删除一个集合(如List)中的多个元素
- java中循环遍历删除List和Set集合中元素的方法
- java中如何在循环中准确删除集合中的某个元素,并且不引起错误
- 删除正在循环迭代的集合元素的分析
- Java并发编程7-循环删除集合元素
- Java在循环中删除集合中的元素
- 为什么Iterator的remove方法可保证从源集合中安全地删除对象,而在迭代期间不能直接删除集合内元素
- Java中如何循环删除一个集合(如List)中的多个元素
- 【集合】循环中如何删除其中的元素
- NSMutableArray数组循环中删除元素不安全的
- 关于循环删除集合中的元素
- 循环删除list集合元素