给定Item
已附加到 a 的 a 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;
}
我还没有实际测试过这个,但它应该可以工作,我只是不喜欢枚举每个项目,但不应该有那么多,所以我想它没问题。
好吧,只有两种方法可以做到这一点,因为 API 没有indexOf(Item)
方法:
Item
. 因此,当您在其他项目之前插入另一个时Item
,您必须更新这些项目的索引。你可以为此保留某种影子阵列,但这似乎有点过头了。size
使用 的和get
方法遍历表单的所有项目Form
。