猿问

Java直接遍历数组而不是数组变量

在某些语言中,例如 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);

}


慕村225694
浏览 136回答 3
3回答

料青山看我应如是

我想遍历数组而不必创建变量。您需要将循环更改为此:for (int i : new int[] {1, 2, 3, 4}) {    // do something (4 iterations)}

犯罪嫌疑人X

如果您确实想避免使用括号语法,您也可以这样做: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);

冉冉说

您当然可以创建以下实用程序:class ArrayUtils {&nbsp; &nbsp; static int[] of(int... array) {&nbsp; &nbsp; &nbsp; &nbsp; return array;&nbsp; &nbsp; }}然后静态导入此方法,使用import static ArrayUtils.of. 现在你有一个相当简短的表达:for (int i : of(1, 2, 3, 4)) { ... }然而,我不会在现实生活中这样做。相反,我会写一个 ol' skoolfor (int i = 1; i <= 4; i++) { ... }或者可能IntStream.rangeClosed(1, 4)
随时随地看视频慕课网APP

相关分类

Java
我要回答