无法从矢量中获取矩阵

时间:2018-05-29 00:59:41

标签: java matrix vector

我是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);        
}

谢谢!

DEBUGER

1 个答案:

答案 0 :(得分:1)

matrix=vector.lastElement();步骤中,您必须执行深层复制而不是复制参考:

(从您的代码中我假设您的矢量包含大小为processNo x processNoprocessNo > prNo的二维数组

int[][] vectorElement = v.lastElement();
for (int i = 0; i< vectorElement.length; i++) {
    System.arraycopy(vectorElement[i], 0, matrix[i], 0, vectorElement[i].length);
}