在Java中,给定一个dim为6000 * 6000的二维双值数组,是否有一种有效的方法来查询行最大值和行总和?
我正在使用数据结构 double[][] 和一个两层循环来获取行的最大值和总和,但它的效率不够高,因为这个函数被频繁调用。
double MinRowMax = Double.POSITIVE_INFINITY;
int num = 6000;
double[][] array2DDist = new double[num][num];
Random rand = new Random();
// initialising the array2DDist
for(int i=0;i<num;++i)
for(int j=0;j<num;++j)
array2DDist[i][j] = rand.nextDouble();
// get the row.max and row.sum
for(int i=0;i<num;++i) {
double maxDist = Double.NEGATIVE_INFINITY;
double sumDist = 0;
for(int j=0;j<num;++j) {
double dist = array2DDist[i][j];
maxDist = Double.max(maxDist, dist);
sumDist+=dist;
}
if(maxDist < MinRowMax) {
MinRowMax = maxDist;
}
}
有没有提供更有效解决方案的 Java 库?是否有任何类似于 Python 或 R 中的 Matrix 类的 Java 库?
谢谢!