4

List(実際には)がLinkedListあり、メソッドを実装するアイテムをそれに追加しequalsます。

問題は、等しいが同一ではない項目 (2 つの初期化されたオブジェクトなど) を追加することです。ここで、2 番目に追加したアイテムのインデックスを取得したい場合は、もちろん最初のアイテムの要素を取得しますindexOf

-methodの独自のサブクラスを作成してLinkedList上書きしようとしましたが、サブクラスにも Node-ElementindexOfにもアクセスできないため、これは不可能です。Nodefirst

次に例を示します。

public class ExampleObject {

  int number;

  public ExampleObject(){
    number = 0;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;
    if (getClass() != obj.getClass()) return false;
    ExampleObject other = (ExampleObject) obj;
    if (number != other.number) return false;
    return true;
  }

  public static void main(String[] args) {
    LinkedList<ExampleObject> list = new LinkedList<ExampleObject>();

    ExampleObject one = new ExampleObject();
    ExampleObject two = new ExampleObject();

    list.add(one);
    list.add(two);

    System.out.println(list.indexOf(one)); // '0' as expected
    System.out.println(list.indexOf(two)); // '0', but I want to get '1'

  }
}

私の意図:初期化されたオブジェクトを保存して後で編集したいオブジェクトのリストが必要です。

4

2 に答える 2