我必须在Java中创建一个2D矩阵(由双精度值组成)以及一个1D向量。应该可以访问单个行和列以及单个元素。此外,它应该是线程安全的(线程同时写入)。也许以后我也需要一些矩阵运算。
哪种数据结构最适合?只是2D数组还是TreeMap?还是有什么很棒的外部库?
您应该将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
您可以像这样获得specifix索引值
Double r2c1=matrix.get(1).get(0); //2nd row 1st column
看看 矢量
问题内容: 所以我想写一个矩阵浏览器,使我能够重新排序矩阵的行和列。对于这个海豚,我使用了Jtable类。现在我遇到的问题是,通过查看双精度值很难对矩阵进行重新排序,因此我想打印的矩阵不是带双精度值,而是带圆圈的圆,其中圆的半径代表该值。这样我就可以更快地分辨出大值和小值之间的区别。 有人知道如何使用JTable或任何表类将此双精度值转换为实心圆吗? 问题答案: 这是一个自定义渲染器的示例,该渲染
问题内容: 如何在Java中存储100K X 100K矩阵? 我无法使用普通的数组声明来执行此操作,因为它会引发。 问题答案: 听起来您需要一个稀疏矩阵。其他人已经提出了可以满足您需求的良好的第三方实施方案。 根据您的应用程序,您可以不使用第三方矩阵库,而只需使用Map作为矩阵数据的后备存储即可。有点儿… 一个说明SparseMatrix用法的简单测试用例为: 这不是最有效的方法,因为矩阵中的每个
问题内容: 我正在尝试使Java 2D图形“ hello world”运行起来,并发现它异常困难(即,我正在搜索“ java hello world example”的变体,然后变成空白)。有人能帮我举一个最小的世界范例吗? 编辑 不过,这是一个不错的起点,“ Java教程:执行自定义绘画” 。 问题答案: 要在Swing中绘制矩形,您应该: 首先,永远不要直接在JFrame或其他顶级窗口中绘制。
问题内容: 我正在自学一些Java,并且坚持创建2D数组,该数组使用随机值对其进行初始化,然后创建该数组的转置。 示例输出为: 原始矩阵 转置矩阵 ^应该是最终输出。代码的一些帮助将不胜感激! 如果行或列的数量超出指定范围,我想编写代码以生成错误消息。以及是否从命令行读取矩阵元素而不是随机生成它们。 问题答案: 这是返回转置矩阵的int [] []的简单方法… 比起打印二维矩阵,您可以使用如下方法
我使用OpenGL进行2D渲染,并希望使用实际像素坐标。我的意思是,我希望(0,0)位于窗口的左上角,而(宽度,高度)位于窗口右下角(其中宽度和高度是窗口的像素尺寸)。为了做到这一点,我使用了一个投影矩阵,该矩阵由glOrtho生成,然后传递给顶点着色器: 我使用的是LWJGL,它没有glm的绑定,所以我使用上面的OpenGL调用获得2D正交矩阵。我重置了投影矩阵,这样它就不会影响我以后的绘图调用