1、当时有个需求,需要删除list中的某一个相关联的全部重复的数据。
当时的想法如下:for循环查找到就删除,但是结果与我有相差。
public class Demo2 {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("123");
list.add("123");
list.add("234");
list.add("234");
list.add("345");
list.add("555");
Set<String> set=new HashSet<>();
set.add("123");
set.add("234");
set.add("345");
System.out.println("------------------");
for (String string : list) {
System.out.println(string);
}
for(int i=0;i<list.size();i++) {
String receiptCode=list.get(i);
if(set.contains(receiptCode)) {
list.remove(list.get(i));
}
}
System.out.println("删除后的数据");
for (String string : list) {
System.out.println(string);
}
}
结果
}
后面使用迭代器删除既然成功了。
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("123");
list.add("123");
list.add("234");
list.add("234");
list.add("345");
list.add("555");
Set<String> set=new HashSet<>();
set.add("123");
set.add("234");
set.add("345");
System.out.println("------------------");
for (String string : list) {
System.out.println(string);
}
Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
String num = iterator.next();
if(set.contains(num)){
iterator.remove();
}
}
System.out.println("删除后的数据");
for (String string : list) {
System.out.println(string);
}
}
}