[英]How do I compare a number in a certain index from two different 2d arrays?
[英]How do i compare two double type 2D arrays with eachother?
我有一个作业要编写一个程序来制作测量图表(由math.random
生成)。 这部分已经完成并且所有功能都在运行,但下一步是指出最大值在哪一列。
我开始创建一个与第一个完全相同的新 2d 数组,然后使用Arrays.sort
对其进行Arrays.sort
因此我知道哪个值最高。
然后我尝试编写代码,将第一个数组中的所有值与我得到的最大值进行比较。 (我使用了 for 循环,所以当值匹配时,我会知道最高值的位置)但这不起作用,
这是什么出现:
“线程“main”java.lang.ClassCastException 中的异常:class [D 无法转换为 java.lang.Comparable 类([D 和 java.lang.Comparable 位于加载器‘bootstrap’的模块 java.base 中)在 java。 base/java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:320) at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:188) at java.base/java.util.Arrays.sort(Arrays.爪哇:1040)”
我非常愿意接受所有建议和我能得到的帮助! 另外,如果您需要我展示我编写的代码,请告诉我!
否则,祝你有美好的一天!
编辑:这是我为最后一部分编写的代码。
java.util.Arrays.sort(peak);
double peak2 = peak[x][y];
//Testing for highest value
for (int i = 0; i < x; i++)
{
for (int k = 0; k < y; k++)
{
double value2 = value[k][i];
if (value2 == peak2)
{
System.out.println("The highest value: " + peak2 + "is in cell " + i + ", " + k);
}
}
}
无需排序。 只需遍历数组并找到最大值。
double maxVal = peak[0][0];
int maxRow = 0;
int maxCol = 0;
for (int row = 0; row < peak.length; row++) {
for (int col = 0; col < peak[row].length; col++) {
if (peak[row][col] > maxVal) {
maxVal = peak[row][col];
maxRow = row;
maxCol = col;
}
}
}
System.out.printf("The highest value: %f is in cell %d, %d%n",
maxVal,
maxRow,
maxCol);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.