如何将矢量的矢量存储到 java 中的二维数组中

How can I store vector of vectors into a 2d array in java

java 代码中的片段在这里:

public class MatrixUsingVectors {

    public static void main(String[] args) {
    
    Scanner sc= new Scanner(System.in);
    Vector<Vector<Integer> > vec= new Vector<Vector<Integer> >();
    for(int i=0;i<3;i++)
    {
        Vector<Integer> op= new Vector<Integer>(3);
        for(int j=0;j<3;j++)
        {
            op.add(sc.nextInt());
        }
        vec.add(op);
    }
    System.out.println(vec);
    int [][] ar= new int[vec.size()][3];
    vec.copyInto(ar);// this line throws ArrayStoreException
    for(int[] c: ar)
    {
        System.out.println(c);
    }
}
}

我想将向量 vec 的元素存储在名为 ar 的二维数组中。 我需要帮助来处理 ArrayStoreException 并想将 vec 的元素存储到 ar 中。 请帮忙。

向量是一维的。数组是一维的。 Vector.copyInto() 方法接受一个 i 维数组作为参数。

如果你想将一个 Vector of Vectors 复制到一个 2 Array 中,那么你需要遍历 2 个维度来进行复制

所以代码应该是这样的:

Object[][] rows = new Object[vec.size()][];

for (int i = 0; i < vec.size(); i++)
{
    Vector<Object> vectorRow = ((Vector)vec.get(i));
    Object[] arrayRow = new Object[vectorRow.size()];
    vectorRow.copyInto( arrayRow );
    rows[i] = arrayRow;
}

I need help to deal with ArrayStoreException

那是 运行 时间异常。首先,您需要担心复制数据的正确算法。然后,如果你想捕获异常,你可以在整个算法中添加一个 try/catch 块。