1、易错方式
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
System.out.println(list);
Iterator<String> iterator = list.iterator();
for (String s : list) {
int index = list.indexOf("4");
list.remove(index);
}
System.out.println(list);
}

解决办法:
2、迭代器删除(推荐)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
System.out.println(list);
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String s = iterator.next();
if ("4".equals(s)) {
iterator.remove();
}
}
System.out.println(list);
}
3、其他
List<String> list = Arrays.asList("1","2","3","4","5");
这种方式创建的集合是Arrays的内部类ArrauList,而不是 java.util.ArrayList,添加、删除报错

集合拷贝一下就好了,
List<String> strings = new ArrayList<>(list);
本文探讨了在Java中使用不同方法操作集合的正确实践,包括避免在遍历过程中直接修改集合,推荐使用迭代器进行元素删除,以及指出通过Arrays.asList创建集合的限制。文章通过具体代码示例展示了常见错误及其解决方案。
609

被折叠的 条评论
为什么被折叠?



