I want to remove a List of elements Objects from list base on whatever is inside list2. I used removeAll(). Why does the list not remove those elements that are found in list2?
Element.java
public class Element {
    private String element;
    public Element() {
    }
    public Element(String element) {
        setE(element);
    }
    public String getElement() {
        return element; 
    }
    public void setElement(String element) {
        this.element = element;
    }
}
RemoveAllTest.java
import java.util.ArrayList;
import java.util.List;
public class RemoveAllTest {
    public RemoveAllTest() {
        List<Element> list = new ArrayList<Element>();
        List<Element> list2 = new ArrayList<Element>();
        list.add(new Element("a"));
        list.add(new Element("b"));
        list.add(new Element("c"));
        list2.add(new Element("a"));
        list2.add(new Element("b"));
        list.removeAll(list2);
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getElement());
        }
    }
    public static void main(String[] args) {
        new RemoveAllTest();
    }
}
 
     
     
     
     
     
    