java - 对于(对象对象 : list) [java] and index element

标签 java list loops

有没有办法获取列表的元素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 支持addsetremove 操作。

就迭代机制而言,这是 List 相对于数组的另一个明显优势。

关于java - 对于(对象对象 : list) [java] and index element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2858103/

相关文章:

java - switch 语句和返回值 - 如何使用 switch 来确定 JPanel 绘制

java - 在一个实例 bean 上同时使用注解和 XML 配置

命名元组的 Python 列表,替换属性

c# - 将字典转换为 C# 中的对象列表

c# - DataTable 循环性能比较

java - 如何让它运行直到用户输入0或负数?

java - 如何通过命令行启动selenium

java - 如何在 Android Studio 中将 ImageView 转换为字节数组?

python - 为什么会出现 "List index out of range"错误?

javascript - 用 `for` 循环替换 `forEach` 循环