有没有办法获取列表的元素id,以便稍后通过list.get(index)
获取它
使用时
for(Object obj: o)
build
只定义一个局部变量并手动递增它? 有什么更简单的吗?
最佳答案
不,for-each
循环不跟踪索引。您可以使用常规索引循环,也可以执行以下操作:
int idx = 0;
for (Object o : list) {
...
idx++;
}
这是有风险的,因为 break
/continue
会使 idx
不同步,所以不要经常使用它,只有当正文很简单,只有几行。
如果元素不同,List.indexOf
也可以工作,尽管在 O(N)
时,此时您可能需要考虑 Set
(无序,但保证不同)。
还应该说,有时使用 listIterator()
还减轻了迭代时对显式索引的需求。
ListIterator
支持add
、set
和remove
操作。
就迭代机制而言,这是 List
相对于数组的另一个明显优势。
关于java - 对于(对象对象 : list) [java] and index element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2858103/