如何迭代Java中函数返回的数组

时间:2012-03-21 20:53:16

标签: java arrays function for-loop iteration

迭代函数返回的数组的最佳方法是什么?

示例:

for (String s : collectMyStrings()){
  System.out.println(s);
}

在每次迭代中调用collectMyStrings(),还是Java只调用一次,并将返回的数组用于for循环的所有迭代?

3 个答案:

答案 0 :(得分:6)

它只会被调用一次,并且会隐式创建返回数组的迭代器。

答案 1 :(得分:2)

对于数组,for-each循环由Java编译器转换为带有索引变量的普通for循环。这意味着您的代码段大致相当于:

String[] strings = collectMyStrings();
int length = strings.length;

for (int i = 0; i < length; i++) {
    String s = strings[i];
    System.out.println(s);
}

因此,正如您所看到的,该方法只被调用一次。甚至数组的length属性也只读一次。

答案 2 :(得分:0)

方法collectMyStrings()只调用一次以使数组/集合迭代。