En Java, étant donné un tableau 2D de valeurs doubles avec dim comme 6000 * 6000, existe-t-il un moyen efficace d'interroger la ligne max et la somme des lignes? J'utilise la structure de données double [] [] et une boucle à deux couches pour obtenir la ligne max et sum, mais elle n'est pas suffisamment efficace, car cette fonction est appelée fréquemment.Obtenir efficacement row.max et row.sum d'un tableau 2D Java
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;
}
}
Existe-t-il une bibliothèque Java offrant des solutions plus efficaces? Existe-t-il une bibliothèque Java similaire à la classe Matrix en Python ou R?
Merci!
Est-ce que votre tableau change sa valeur? – Flown
Non. Après l'initialisation, les valeurs sont fixes. –
Ensuite, vous devriez mettre en cache vos résultats. – Flown