确定表单上项目的索引(J2ME)

时间:2020-03-06 14:40:21  来源:igfitidea点击:

给定一个已添加到"表单"上的"项目",找出该项目在表单上的索引的最佳方法是什么?

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)方法:

  • 我们更新添加"项目"时获得的索引。因此,当我们在其他项目之前插入另一个"项目"时,则必须更新这些项目的索引。我们可以为此保留某种阴影阵列,但这似乎有些过大。
  • 我们可以使用Form的size和get方法遍历表单的所有项目。