Java for each循环迭代 boolean 数组

标签 java arrays for-loop

我有一个 boolean 数组

boolean[] test = {
    false,
    true,
    true,
    false,
    true
};

我正在尝试使用“for-each”语句翻转(真到假,假到真)值,如下所示:

for(boolean x : test) {
    x = !x;
}

但它只是在局部范围内改变了 x 变量。

我是 Java 的新手,我想问一下如何做到这一点以及这是否是正确的方法。我搜索了很多,但大多数示例都是在不修改数组的情况下从数组中收集数据。

最佳答案

不,这不是正确的方法。增强的 for 循环不允许您更改正在迭代的内容的值。要反转数组,您需要使用常规的 for 循环:

for (int i = 0; i < test.length; i++) {
    test[i] = !test[i];
}

(请注意,增强的 for 循环可以让您更改任何数组元素所引用的 对象,如果它们是类的话——但这与更改元素的值不同本身。)

关于Java for each循环迭代 boolean 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972459/

相关文章:

java - 空字符串解析ntpq命令结果

java - 创建构造函数、方法和存储数组的规范令人困惑?

php - 向表中插入多行

php - php 中每天细菌计数的输出循环

python - For 循环不中断 (Python)

java - 我需要为 mysql 表的每一行分配一个随机但唯一的 ID。如果行包含相同的值,则 ID 应该相同

java - OkHttp 客户端不尊重 Accept header

ios - 如何在数组中只加载自定义字体名称?

swift - 在 swift 4 的 for 循环中大于和小于等于

java - 如何将列内容设为列名 JTable - MySQL