我要问的是(例如下面这段代码),一旦你声称它们是平等的或者我在这里错过了某些东西,对象是否确实对彼此产生了这种直接影响?
我现在能找到的解决方案是在for循环中将每个部分从一个矩阵到另一个矩阵相等,是否有更高效/更舒适的方法(在我是对的情况下)关于以上述方式相互影响的物体??
公共类矩阵{
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
}
}
答案 0 :(得分:2)
这一行
boolean mat2[][] = mat;
不会创建2D数组的副本,它只会创建引用同一数组的另一个引用。您通过两个引用访问同一个数组,因此通过第一个数组设置的false
与从第二个数组获得的false
相同。