在某些语言中,例如 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);}
3 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
我想遍历数组而不必创建变量。
您需要将循环更改为此:
for (int i : new int[] {1, 2, 3, 4}) {
// do something (4 iterations)
}
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
如果您确实想避免使用括号语法,您也可以这样做:
for (int i : Arrays.asList(1,2,3,4)) { System.out.println(i); }
这将有效地执行与创建 an 相同的操作Array
,但您正在迭代固定的 size List
。
注意: 这个答案主要只是为了知识,在实践中你不应该这样做并且更喜欢使用new int[]{}
而不是导入Arrays
库并将值装箱为List
不必要的。
您可能会看到使用的更传统的方式asList()
类似于:
Arrays.asList(1,2,3,4).forEach(System.out::println);
冉冉说
TA贡献1877条经验 获得超1个赞
您当然可以创建以下实用程序:
class ArrayUtils {
static int[] of(int... array) {
return array;
}
}
然后静态导入此方法,使用import static ArrayUtils.of. 现在你有一个相当简短的表达:
for (int i : of(1, 2, 3, 4)) { ... }
然而,我不会在现实生活中这样做。相反,我会写一个 ol' skool
for (int i = 1; i <= 4; i++) { ... }
或者可能
IntStream.rangeClosed(1, 4)
添加回答
举报
0/150
提交
取消