java - 增强的 for 语句如何用于数组,以及如何获取数组的迭代器?

标签 java arrays iterator foreach

给定以下代码片段:

int[] arr = {1, 2, 3};
for (int i : arr)
    System.out.println(i);

我有以下问题:

  1. 上述 for-each 循环是如何工作的?
  2. 如何在 Java 中获取数组的迭代器?
  3. 是否将数组转换为列表以获取迭代器?

最佳答案

如果您想要 Iterator在数组上,您可以使用其中一种直接实现,而不是将数组包装在 List 中。 .例如:

Apache Commons Collections ArrayIterator

或者,这个,如果你想使用泛型:

com.Ostermiller.util.ArrayIterator

请注意,如果您想拥有 Iterator对于原始类型,您不能,因为原始类型不能是泛型参数。例如,如果您想要 Iterator<int> ,您必须使用 Iterator<Integer>相反,如果有 int[] 支持,这将导致大量的自动装箱和取消装箱。 .

关于java - 增强的 for 语句如何用于数组,以及如何获取数组的迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912765/

相关文章:

java - Spring数据MongoDB : update using dot-notation

Java:使用扫描仪时总是收到 NoSuchElementException

javascript - 使用数组中的图像填充多个 div,且不重复

python - Numpy:在数组上施加行依赖最大值

java - 在primefaces自动完成组件上制作示例时遇到麻烦

java - Java 是 "pass-by-reference"还是 "pass-by-value"?

c - 指向不完整类型的指针的 vector 分配错误下标

java - 用 Java 编写通用迭代器

haskell - 在 Rust 中实现类似 Haskell 的素数迭代器

c++ - 无法将 sregex_iterator 作为流传递给 cout