我是靠谱客的博主 聪明猫咪,最近开发中收集的这篇文章主要介绍Java ArrayList在foreach中remove的,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我告诉你,这种方式会报错

@Test(expected = ConcurrentModificationException.class)
public void testListForeachRemoveThrow() {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
for (String s : list) {
list.remove(s);
}
}
@Test(expected = ConcurrentModificationException.class)
public void testListForeachAddThrow() {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
for (String s : list) {
list.add(s);
}
}

不能在foreach的时候添加元素和删除元素否则会报错
你可以优雅的这样

@Test
public void testListForiRight() {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
list.remove(i);
i--;
//位置前挪了减回去就行了
}
}
@Test
public void testIteratorRemove() {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
Iterator<String> itr = list.iterator();
while (itr.hasNext()) {
String s = itr.next();
System.out.println(s);
itr.remove();
}
}

最后

以上就是聪明猫咪为你收集整理的Java ArrayList在foreach中remove的的全部内容,希望文章能够帮你解决Java ArrayList在foreach中remove的所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部