确定表单上项目的索引(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方法遍历表单的所有项目。