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

时间:2008-09-24 16:10:26

标签: java java-me lcdui

如果已将Item附加到Form,那么找出该项目所在的索引的最佳方法是什么?

Form.append(Item)会给我最初添加的索引,但是如果我之后插入项目,索引将会不同步。

2 个答案:

答案 0 :(得分: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;
}

我实际上没有对它进行过测试,但是它应该可以工作,我只是不喜欢列举每个项目,但是那时应该永远不会那么多,所以我猜它没问题。

答案 1 :(得分:0)

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

  1. 您更新添加Item时获得的索引。因此,当您在其他项目之前插入另一个Item时,您将不得不更新这些项目的索引。你可以保留一些阴影数组,但这似乎有点矫枉过正。
  2. 使用size的{​​{1}}和get方法遍历表单的所有项目。