0

在 java 中使用 indexOf() 函数时应该覆盖哪个函数。我有一个数组列表,然后我将输入作为 ID 并创建一个包含 ID 且所有其他元素为空的对象,然后我需要传递该对象并获取包含该对象的元素的索引

4

1 回答 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 回答