在 java 中使用 indexOf() 函数时应该覆盖哪个函数。我有一个数组列表,然后我将输入作为 ID 并创建一个包含 ID 且所有其他元素为空的对象,然后我需要传递该对象并获取包含该对象的元素的索引
问问题
4116 次
1 回答
5
equals()方法
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);
}
于 2012-12-25T14:13:37.860 回答