在java中使用indexOf()函数时,我应该覆盖哪个函数。我有一个数组列表,然后我接受一个输入作为ID并创建一个包含ID的对象,所有其他元素都为null,然后我需要传递该对象并获取包含该对象的元素的索引< / p>
答案 0 :(得分:5)
public boolean equals(Object o) {
if (o instanceof MyObject) {
//id comparison
MyObject mo = (MyObject)o;
return mo.id.equals(id);
}
return false;
}
将MyObject
更改为您的班级。
请记住更改hashCode()
以及@Hovercraft指出。 equals和hashCode一起使用(为它们读取javadoc)。否则你可能会遇到一些令人讨厌的问题而且可能很难找到错误。
一个例子:
使用java 7+,你可以这样做:
public int hashCode() {
return java.util.Objects.hashCode(id);
}