引子:看阿里开发手册时,其中提到不要在forEach里面进行元素的remove/add。否则会有错误发生,亲自试了一下,果然会有问题。如下
List<String> strList = new ArrayList<>();
strList.add("1");
strList.add("2");
for (String str : strList) {
if (Objects.equals("2", str)) {
strList.remove(str);
}
}
System.out.println(strList.toString());

其建议是这样
List<String> strList = new ArrayList<>();
strList.add("1");
strList.add("2");
Iterator iStr = strList.iterator();
while (iStr.hasNext()) {
String temp = iStr.next().toString();
if (Objects.equals("2", temp)) {
iStr.remove();
}
}
这样是正常的,但无法转成list展示看效果,我百度搜了一下资料,有几种方法,我这边一一进行

本文探讨了在Java中将List转换为Iterator,再转回List时遇到的问题。根据阿里巴巴开发手册,不应在forEach循环中进行元素的remove或add操作。作者通过测试发现,使用IteratorUtils.toList()和Lists.newArrayList()方法转换后的结果为空。进一步调试显示,问题可能出现在IteratorUtils内部的hasNext()检查上。作者期待对此有深入理解或解决方案的专家提供帮助。
最低0.47元/天 解锁文章
1万+





