i have Two list,List<String> and List<Item>.
public class Item {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
My Code::
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();
}
Error::
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)
if name in List<Item> is equals List<String>is same then remove element from List<Item>. how can i remove element from List<Item>?
If you need to remove data not in common in the 2 lists, try:
you need to use the
boolean foundin order not to delete all the elements.