比较LinkedList.contains()中的对象

我希望LinkedList.contains()对于自定义

比较器返回true 。

假设我有1个LinkedList和2个对象

LinkedList<MyObject> myList = new LinkedList<MyObject>();

MyObject a = new MyObject("HELLO");

MyObject b = new MyObject("HELLO");

从技术上讲,两个对象在比较方面是相同的(MyObject

实现Comparable)

(a == b)==真

但是,当我执行以下操作时,myList对于

myList.contains(b)不会返回true

myList.add(a)

myList.contains(b) // == false

我认为它是因为contains将检查对象引用,并看到a和b是2个不同的对象。有什么办法可以使我不必扩展LinkedList来比较那些对象?

回答:

LinkedList使用equals方法,而不是Comparable.compareTo。您应该在 MyObject中

重写equals(和hashCode) 以解决该问题。

以上是 比较LinkedList.contains()中的对象 的全部内容, 来源链接: utcz.com/qa/402532.html

回到顶部