我是Android Studio的新手,我一直试图从矢量中获取矩阵,修改它并将其放回去但是当我增加矩阵时,矢量会自动改变我从矩阵中取出的值。 ..我无法弄清楚为什么? 这是我的代码:
Vector<int[][]> internalProces(int prNo, Vector<int[][]> vector)
{
int[][] matrix =new int[processNo][processNo];
matrix=vector.lastElement();
matrix[prNo][prNo]++;
vector.add(matrix);
return vector;
}
public void test(){
Vector<int[][]> vector=new Vector<>();
VectorClk vectorClock = new VectorClk(3);
vector=vectorClock.initialize(vector);
vector=vectorClock.internalProces(1,vector);
}
谢谢!
答案 0 :(得分:1)
在matrix=vector.lastElement();
步骤中,您必须执行深层复制而不是复制参考:
(从您的代码中我假设您的矢量包含大小为processNo x processNo
和processNo > prNo
的二维数组
int[][] vectorElement = v.lastElement();
for (int i = 0; i< vectorElement.length; i++) {
System.arraycopy(vectorElement[i], 0, matrix[i], 0, vectorElement[i].length);
}