gpt4 book ai didi

java - 在基元数组中重新分配数组值不会更改数组

转载 作者:行者123 更新时间:2023-12-02 09:39:13 25 4
gpt4 key购买 nike

我尝试设置具有 2 个循环的 2D boolean 数组的值,如下所示:

 boolean[][] frame = new boolean[10][4];
for (boolean[] column : frame)
for (boolean b : column)
b = true;

但这似乎不起作用,所有 boolean 值仍然为假,为什么?

最佳答案

您不能为数组中的对象分配新值,因为原始对象不会更改。下面的代码就可以解决问题。

boolean[][] frame = new boolean[10][4];
for (boolean[] column : frame)
for (int i = 0; i < column.length; i++)
column[i] = true;

更多解释:

该数组包含指向 boolean 值的元素。当您将数组的一个元素的值赋给名为 b 的变量(for (boolean b : column))时,变量 b 指向同一个对象数组中的元素指向。接下来,将变量 b 指向 true。现在,b 将为真。但是,数组中的元素仍然指向同一个对象。

我希望现在一切都清楚了。一张图片会让它更容易理解......

关于java - 在基元数组中重新分配数组值不会更改数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com