创建集合
//创建集合
List<String> ls=new ArrayList<>();
ls.add("sick");
ls.add("java");
ls.add("java");
ls.add("hhh");
ls.add("wd");
ls.add("hapi");
System.out.println(ls);
使用迭代器删除集合中的元素(可行)
Iterator<String> it=ls.iterator();
while(it.hasNext()){
String ele=it.next();
if(ele.equals("java")){
//ls.remove("java");会报错,因为删除第一个java后,后面元素向前补,导致等同于计数器向后移动了两次
it.remove();//可行,删除当前元素并且光标不会后移,内部计数器做了--操作
}
}
System.out.println(ls);
使用for循环遍历删除的两种方法(可行)
//1.for循环从前往后遍历方法
for(int i=0;i<ls.size();i++){
String ele=ls.get(i);
if(ele.equals("java")){
ls.remove("java");
i--;//删除后进行光标--
}
}
System.out.println(ls);
//2.for循环从后往前遍历
for(int i= ls.size()-1;i>=0;i--){
String ele=ls.get(i);
if(ele.equals("java")){
ls.remove("java");
//不需要i--
}
}
System.out.println(ls);
使用foreach遍历删除(不可行),使用lambda表达式删除(不可行)
//使用foreach遍历删除(不可行)
for (String s:ls){
if(s.equals("java")){
ls.remove("java");
}
}//并发修改异常
//使用lambda表达式删除(不可行)
ls.forEach(s->{if(s.equals("java")){
ls.remove("java");
}});//异常