Item
に追加された が与えられた場合、Form
そのアイテムがフォームのどのインデックスにあるかを調べる最良の方法は何ですか?
Form.append(Item)
最初に追加されたインデックスが表示されますが、後でその前にアイテムを挿入すると、インデックスが同期しなくなります。
これは私が思いつくことができる最高のものでした:
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;
}
私は実際にこれをテストしていませんが、うまくいくはずです。すべてのアイテムを列挙する必要があるのは好きではありませんが、それほど多くはないはずなので、問題ないと思います.
indexOf(Item)
API にはメソッドがないため、これを行うには 2 つの方法しかありません。
Item
。したがって、Item
他の項目の前に別の項目を挿入する場合、それらの項目のインデックスを更新する必要があります。このためにある種のシャドウ配列を保持することもできますが、それは少しやり過ぎのようです。size
のおよびget
メソッドを使用して、フォームのすべての項目をループしますForm
。