gpt4 book ai didi

java - 在 java 中复制数组的最佳程序是什么

转载 作者:行者123 更新时间:2023-11-30 06:19:26 25 4
gpt4 key购买 nike

在下面的代码中,将数组对象赋值给另一个数组对象 t。这两个是内存中的不同对象吧?为什么更改一个对象会影响其他对象的内容?

package test.main;

import java.util.LinkedHashSet;
import java.util.Set;

public class C1 implements I1,I2{

/**
* @param args
*/
public static void main(String[] args) {

int [][] a= {{1,2}};

int [][] t= {};
t=a;
t[0][0] = 3;
System.out.println("t "+t[0][0]);
System.out.println("a "+a[0][0]);
}

@Override
public void staticMethod() {
// TODO Auto-generated method stub

}

}

输出:

t 3
a 3

最佳答案

these two are different objects in the memory right?

不,它们是两个不同的变量,指向同一个数组对象

关键在于理解引用变量和它引用的对象之间的区别。如果您想创建两个完全不同的数组,那么您将需要使用 System.arraycopy(...)。如果您还需要复制数组项,并且它是一个对象数组,实际上是一个引用数组,那么您将需要进行深度复制。

关于java - 在 java 中复制数组的最佳程序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096601/

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