0

java で indexOf() 関数を使用する場合、どの関数をオーバーライドする必要がありますか。配列リストがあり、ID として入力を取り、ID を含むオブジェクトを作成し、他のすべての要素は null です。次に、そのオブジェクトを渡し、そのオブジェクトを含む要素のインデックスを取得する必要があります。

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 に答える