Eri*_*ric 9 java equality contains linked-list
我希望能够让LinkedList.contains()为自定义比较器返回true.
假设我有1个LinkedList和2个对象
LinkedList<MyObject> myList = new LinkedList<MyObject>();
MyObject a = new MyObject("HELLO");
MyObject b = new MyObject("HELLO");
Run Code Online (Sandbox Code Playgroud)
技术上,两个对象在比较方面是相同的(MyObject实现Comparable)
(a == b)== true
但是,当我执行以下操作时,myList不会为myList.contains返回true(b)
myList.add(a)
myList.contains(b) // == false
Run Code Online (Sandbox Code Playgroud)
我认为它因为包含将检查对象引用,并看到a和b是2个不同的对象.我有什么方法可以做到这一点所以我不必扩展LinkedList来比较这些对象?
Bre*_*iel 26
LinkedList使用equals方法,而不是Comparable.compareTo.您应该在MyObject中重写equals(和hashCode)来解决问题.
归档时间: |
|
查看次数: |
36292 次 |
最近记录: |