我遇到这种情况:
List<MyClass> list_1 = new ArrayList<>();
List<MyClass> list_2 = new ArrayList<>();
list_1.add(elements...);
list_2.add(same elements...);
mixList(list_1); //mixing the inner order between the elements
mixList(list_2);
MyClass mClass = list_1.get(5); //for example place 5
//TODO: How to remove above element who is exist
//in list_2 also, from list_2?
注意 - 它也是相同的元素,但它们不是同一个对象:
//same elements, different objects
MyClass m1 = new MyClass("name", 1);
MyClass m2 = new MyClass("name", 1);
答案 0 :(得分:1)
问题1:
//same elements, different objects
MyClass m1 = new MyClass("name", 1);
MyClass m2 = new MyClass("name", 1);
要识别它们,您应该实施equals()
方法。
首先:How to override equals method in java
问题2:
您可以通过编写
删除相同的项目list2.removeAll(list1);
请注意,您必须实施equals()
方法才能使其正常运行。