比较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