当前位置: 首页 > 面试题库 >

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

司空实
2023-03-14
问题内容

给出以下代码片段:

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

我有以下问题:

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

问题答案:

如果您要Iterator遍历数组,则可以使用其中的直接实现之一,而不用将数组包装在中List。例如:

Apache Commons集合 ArrayIterator

或者,如果您想使用泛型,请执行以下操作:

com.Ostermiller.util.ArrayIterator

请注意,如果您想拥有一个Iterator过度的原始类型,则不能,因为原始类型不能是泛型参数。例如,如果要使用Iterator<int>,则必须Iterator<Integer>改用,如果后面有,则会导致大量自动装箱和-
unboxing int[]



 类似资料:
  • 我正在开发一个应用程序,但我遇到了一个问题...我无法访问if语句之外的数组...这是我的代码: 这是关于数组:options[i][j]我不能在if语句之外访问...我已经为此工作了两天,但我找不到解决方案... 编辑:感谢所有的答案,但是当我尝试访问中的变量(例如:)。我得到错误:选项无法解析为变量。 你好,肯尼斯

  • //我需要向用户询问他们想要的列表的大小,然后为他们想要的大小列表生成带有数组列表的随机数,并输出列表。我已经完成了这些步骤,但接下来我必须使用增强的for循环输出列表中的奇数,然后在没有偶数的情况下重新打印列表//

  • 标题有点混乱,很抱歉,所以我有一个太多的数组,其中一个数组比第二个数组包含更多 所以我想做的是例如 这只会注销第一个一次,但我想要的是日志y和x长度一样多,希望这是足够清楚的

  • 问题内容: 我看到了如下一行代码: 就我所知,我认为要能够以这种格式编写for循环,我们需要将“ words”作为实现Iterable接口并覆盖iterator()函数的类的实例。但是’words’是String数组类型,这对于循环格式如何正确? 有人可以给我一些提示吗? 问题答案: 从有关此主题的Java教程中: for-each构造也适用于数组,其中它隐藏索引变量而不是迭代器。以下方法返回in

  • 问题内容: 我有一个看起来像这样的表: 我想做的是返回一组行,其中值按’val’分组,并带有fkeys数组,但仅在fkeys数组大于1的情况下。因此,在上面的示例中,返回值将是看起来像: 我有以下查询聚合数组: 但这返回类似: 最好的方法是什么?我猜可能是将现有查询用作子查询,并对它进行求和/计数,但这似乎效率很低。任何反馈都将真正有帮助! 问题答案: Use子句过滤具有以下内容的组

  • 问题内容: 我有并想要一些函数,调用的结果是新数组。 问题答案: 看一眼