我有两个列表,List<String> and List<Item>.
public class Item {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我的代码::
public class Twolist {
List<Item> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
public Twolist() {
Item item = new Item();
item.setName("itemname1");
list1.add(item);
item = new Item();
item.setName("itemname2");
list1.add(item);
item = new Item();
item.setName("itemname3");
list1.add(item);
item = new Item();
item.setName("itemname4");
list1.add(item);
item = new Item();
item.setName("itemname5");
list1.add(item);
item = new Item();
item.setName("itemname6");
list1.add(item);
item = new Item();
item.setName("itemname7");
list1.add(item);
item = new Item();
item.setName("itemname8");
list1.add(item);
// list 2 start here
list2.add("itemname2");
list2.add("itemname4");
list2.add("itemname6");
list2.add("itemname8");
Iterator<Item> it1 = list1.iterator();
while (it1.hasNext()) {
Item item2 = (Item) it1.next();
System.out.println(item2.getName());
for (int i = 0; i < list2.size(); i++) {
String str = list2.get(i);
if (item2.equals(str)) {
} else {
it1.remove();
}
}
}
System.out.println(list1.size());
}
public static void main(String[] args) {
new Twolist();
}
错误::
itemname1
Exception in thread "main" java.lang.IllegalStateException
at java.util.ArrayList$Itr.remove(ArrayList.java:804)
at com.samir.CollectionP.Twolist.<init>(Twolist.java:67)
at com.samir.CollectionP.Twolist.main(Twolist.java:78)
如果 name in List<Item>
is equalsList<String>
相同,则从 中删除元素List<Item>
。我怎样才能从中删除元素List<Item>
?