使用矢量数组创建矩阵阵列的简便方法

时间:2014-12-17 15:15:12

标签: java arrays string matrix vector

我有几个向量要总结为矩阵数组。

   vector1 = {1, 2, 3, 4, 5}
   vector2 = {1, 4, 3, 6, 5}
   vector3 = {8, 2, 3, 4, 5}

   matrix [][] ={{1, 2, 3, 4, 5},
                 {1, 4, 3, 6, 5},
                 {8, 2, 3, 4, 5}};

如何轻松创建这样的矩阵?

3 个答案:

答案 0 :(得分:1)

我不知道你的矢量是什么类型,但我现在假设他们只是Integer。如果您不是,请将Integer替换为您正在使用的任何类型。

如果您愿意使用Vector代替array,则可以声明矩阵:

Vector<Vector<Integer>> matrix = new Vector<Vector<Integer>>();

然后你可以添加像

这样的元素
matrix.add(vector1);
matrix.add(vector2);
matrix.add(vector3);

然后您就可以访问

等元素
matrix.get(2).get(4); //Returns 6 from the sample data

如果确实想要使用arrays,无论出于何种原因,它仍然不难做到,它只是你向量中的另一种方法。< / p>

您可以改为声明matrix

Integer[][] matrix = {vector1.toArray(), vector2.toArray(), vector3.toArray()};

然后您可以访问

等元素
matrix[2][4]; //Returns 6 from the sample data

我会注意到,我不是100%你需要做Integer[][]而不仅仅是int[][],但我认为既然你不能使用原语对于Vector的通用内容,您可能需要继续使用Integer

答案 1 :(得分:0)

    Integer[][] matrix = new Integer[3][5];
    **static**
        matrix[0][0] == 1;
        matrix[0][1] == 2;
        matrix[0][2] == 3;
        matrix[0][3] == 4;
        matrix[0][4] == 5;    
        matrix[1][0] == 1;
        matrix[1][0] == 4;
        matrix[1][0] == 3;
        matrix[1][0] == 6;
        matrix[1][0] == 5;
        matrix[1][0] == 8;
        matrix[1][0] == 2;
        matrix[1][0] == 3;
        matrix[1][0] == 4;
   **dynamic**
        Integer[][] matrix = {vector1.toArray(), vector2.toArray(), vector3.toArray()};

答案 2 :(得分:0)

您的程序似乎会在多个位置使用矩阵,过了一段时间后,您将不得不重新发明轮子并为矩阵编写自己的库的一部分。

您应该认真考虑使用some现有的库。

使用当前方法,一半代码将包含在2D(或更多)数组上运行的for循环。