0

给定Item已附加到 a 的 a 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

好吧,只有两种方法可以做到这一点,因为 API 没有indexOf(Item)方法:

  1. 添加Item. 因此,当您在其他项目之前插入另一个时Item,您必须更新这些项目的索引。你可以为此保留某种影子阵列,但这似乎有点过头了。
  2. size使用 的和get方法遍历表单的所有项目Form
于 2008-10-23T11:38:52.840 回答