我有一个以数组作为参数的对象,我试图以一种可以修改一个对象而不修改另一个对象的方式复制该对象。 这是我的类(class):
public class Matrix {
int rows[];
Matrix() {
rows = new int[9];
}
int[] getRows() {
return rows;
}
void setRow(int x, int y) {
rows[x] = y;
}
int getRow(int x) {
return rows[x];
}
}
我想做这样的事情:
(Consider Object Matriz x is all filled with values)
Matrix k = new Matrix();
k = x;
(Now I want to modify a specific column without of k without modifying a column of x)
k.setRow(3, 3);
但是发生的情况是,由于我执行 k = x; 时的引用,我得到的两个数组是相同的;
如何避免这种情况并复制它们而不是创建引用?我想避免逐个单元复制,以避免增加运行时间。 (一种解决方案是创建一个原始类 Matriz,其子类 Cell 具有 int 值,但除此之外?)
谢谢
最佳答案
首先,你将你的类命名为Matrix
,但它不是一个矩阵。它只有一维,因此Vector
会更准确。
为了复制您的实例,您可以使用复制构造函数。
Matrix(Matrix other) {
rows = Arrays.copyOf(other.rows, other.rows.length);
}
您通过以下方式创建 x 的副本:
Matrix k = new Matrix(x);
关于java - 在 Java 中复制对象/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074837/