题
如果已将 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;
}
我实际上没有对它进行过测试,但是它应该可以工作,我只是不喜欢列举每一个项目,但那时应该永远不会那么多,所以我猜它没问题。
其他提示
嗯,有两种方法可以做到这一点,因为API没有 indexOf(Item)
方法:
- 更新添加
Item
时获得的索引。因此,当您在其他项之前插入另一个Item
时,您将不得不更新这些项的索引。你可以保留一些阴影数组,但这似乎有点矫枉过正。 - 使用
Form
的size
和get
方法遍历表单的所有项目。
醇>
不隶属于 StackOverflow