【发布时间】:2012-01-09 11:07:46
【问题描述】:
我有一些东西
class A {
private Long id;
private String name;
public boolean equals(Long v) {
return this.id.equals(v);
}
}
和这些对象的 ArrayList。 我想要的是能够通过对象的字段检查该列表是否包含某些对象。 例如:
ArrayList<A> list = new ArrayList<A>(); if (list.contains(0L)) {...}
但重写的 Equals 方法对我没有帮助。我做错了什么? 谢谢
更新 我也应该重写 hashcode() 方法吗?
【问题讨论】:
-
你在你的 A 类中重写了 equals() 吗?如果是的话,你能把它贴在这里吗?
-
从下面的答案来看,我想没有方便的解决方案。我觉得这可以通过匿名类实现来解决,就像您使用自己的 Comparator 调用 Collections.sort() 时使用的那种。
-
经过一番搜索,我在这里找到了一些有用的答案:stackoverflow.com/questions/587404/…