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_jack1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。