例如,在某些语言中,Python可以直接遍历数组:
for i in [1, 2, 3, 4]:
print(i)
我知道Java可以通过for (type var : var2)
遍历变量,然后可以跳过该变量并直接遍历数组吗?例如:
for (int i : [1, 2, 3, 4]) {
System.out.println(i);
}
答案 0 :(得分:2)
我想遍历数组而不必创建一个 变量。
您需要将循环更改为此:
for (int i : new int[] {1, 2, 3, 4}) {
// do something (4 iterations)
}
信用:Jacob G.
答案 1 :(得分:2)
如果您真的想避免使用方括号语法,也可以执行以下操作:
for (int i : Arrays.asList(1,2,3,4)) {
System.out.println(i);
}
这将与创建Array
有效地做同样的事情,但是您是在固定大小的List
上进行迭代。
注意:该答案主要是为了获取知识,实际上,您不应该这样做,并且更喜欢使用new int[]{}
而不是导入Arrays
库并将值装箱为List
。
您可能会看到使用asList()
的更传统的方式类似于:
Arrays.asList(1,2,3,4).forEach(System.out::println);
答案 2 :(得分:1)
您可以,当然可以创建以下实用程序:
class ArrayUtils {
static int[] of(int... array) {
return array;
}
}
然后使用import static ArrayUtils.of
静态导入此方法。现在您有一个简短的表达:
for (int i : of(1, 2, 3, 4)) { ... }
但是,在现实生活中,我不会这样做。相反,我只是写一个ol's skool
for (int i = 1; i <= 4; i++) { ... }
或者也许
IntStream.rangeClosed(1, 4)