gpt4 book ai didi

java - 在 Java 中复制对象/数组

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

我有一个以数组作为参数的对象,我正在尝试以一种可以修改一个而不修改另一个的方式复制该对象。这是我的类(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/

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