为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村225694 2023-06-21 16:02:58
在某些语言中,例如 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)

}

查看完整回答
反对 回复 2023-06-21
?
犯罪嫌疑人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);


查看完整回答
反对 回复 2023-06-21
?
冉冉说

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)


查看完整回答
反对 回复 2023-06-21
  • 3 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信