如果已将 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)方法:

  1. 更新添加 Item 时获得的索引。因此,当您在其他项之前插入另一个 Item 时,您将不得不更新这些项的索引。你可以保留一些阴影数组,但这似乎有点矫枉过正。
  2. 使用 Form size get 方法遍历表单的所有项目。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top