如何在 Java 中表示二维矩阵?

新手上路,请多包涵

我必须在 Java 中创建一个二维矩阵(由双精度值组成)以及一个一维向量。应该可以访问单独的行和列以及单独的元素。而且,它应该是线程安全的(线程同时写入)。也许以后我也需要一些矩阵运算。

哪种数据结构最适合这个?只是一个二维数组还是一个 TreeMap?或者有什么了不起的外部图书馆吗?

原文由 machinery 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 584
2 个回答

您应该将 Vector 用于 2D 数组。它是 线程安全 的。

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

    for(int i=0;i<2;i++){
        Vector<Double> r=new Vector<>();
        for(int j=0;j<2;j++){
            r.add(Math.random());
        }
        matrix.add(r);
    }
    for(int i=0;i<2;i++){
        Vector<Double> r=matrix.get(i);
        for(int j=0;j<2;j++){
            System.out.print(r.get(j));
        }
        System.out.println();
    }

如果这是你的矩阵索引

00 01

10 11

您可以获得这样的特定索引值

Double r2c1=matrix.get(1).get(0); //2nd row 1st column

看看 向量

原文由 Noor Nawaz 发布,翻译遵循 CC BY-SA 3.0 许可协议

我给你举个例子:

 int rowLen = 10, colLen = 20;
Integer[][] matrix = new Integer[rowLen][colLen];
for(int i = 0; i < rowLen; i++)
    for(int j = 0; j < colLen; j++)
        matrix[i][j] = 2*(i + j); // only an example of how to access it. you can do here whatever you want.

清除?

原文由 Paulo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题