0

Itemに追加された が与えられた場合、Formそのアイテムがフォームのどのインデックスにあるかを調べる最良の方法は何ですか?

Form.append(Item)最初に追加されたインデックスが表示されますが、後でその前にアイテムを挿入すると、インデックスが同期しなくなります。

4

2 に答える 2

1

これは私が思いつくことができる最高のものでした:

private int getItemIndex(Item item, Form form) {
    for(int i = 0, size = form.size(); i < size; i++) {
        if(form.get(i).equals(item)) {
            return i;
        }
    }
    return -1;
}

私は実際にこれをテストしていませんが、うまくいくはずです。すべてのアイテムを列挙する必要があるのは好きではありませんが、それほど多くはないはずなので、問題ないと思います.

于 2008-09-24T16:58:47.127 に答える
0

indexOf(Item)API にはメソッドがないため、これを行うには 2 つの方法しかありません。

  1. を追加したときに取得したインデックスを更新しますItem。したがって、Item他の項目の前に別の項目を挿入する場合、それらの項目のインデックスを更新する必要があります。このためにある種のシャドウ配列を保持することもできますが、それは少しやり過ぎのようです。
  2. sizeのおよびgetメソッドを使用して、フォームのすべての項目をループしますForm
于 2008-10-23T11:38:52.840 に答える