gpt4 book ai didi

java - Mat2[][] = Mat --> 改变其中一个就意味着改变另一个吗?

转载 作者:行者123 更新时间:2023-12-02 06:26:28 24 4
gpt4 key购买 nike

我要问的是(例如下面的代码),一旦您声称对象相等,对象是否真的会对彼此产生直接影响,还是我只是在这里遗漏了一些东西?

我现在可以找到的解决该问题的方法是在 for 循环中将一个矩阵到另一个矩阵的每个部分都相等,是否有一种更有效/舒适的方法来做到这一点(在我是对的情况下)关于以上述方式相互影响的对象)?

公共(public)类矩阵{

public static void main(String[] args) {
boolean mat[][] = {
{true,true,true},
{true,true,true},
{true,true,true}
};
boolean mat2[][] = mat;
aaa(mat,mat2);

}
public static void aaa(boolean mat[][], boolean mat2[][]){
mat[0][0] = false;
System.out.println(mat2[0][0]); //gives false
mat2[0][1] = false;
System.out.println(mat[0][1]); //gives false
}

}

最佳答案

这一行

boolean mat2[][] = mat;

不会创建二维数组的副本,它只是创建另一个引用同一数组的引用。您通过两个引用访问同一个数组,因此您通过第一个数组设置的 false 与您从第二个数组获取的 false 相同。

关于java - Mat2[][] = Mat --> 改变其中一个就意味着改变另一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483368/

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