In Java 8 si può lanciare una matrice 1-dimensionale int
s in una matrice di double
s:
double[] singleDimensionDoubleArray =
Arrays.stream(singleDimensionIntArray).asDoubleStream().toArray()
ho pertanto scritto quello che ho assunto sarebbe una versione più veloce dal loop sopra la righe:
int[][] iArray = {
{1, 2,},
{5, 6,}
};
double[][] dArray = new double[iArray.length][];
for (int row = 0; row < iArray.length; row++) {
dArray[row] = Arrays.stream(iArray[row]).asDoubleStream().toArray();
}
Stavo per pubblicare questa risposta, ma ho pensato di postare alcuni parametri su quanto più veloce è stato che ingenuamente ciclare su ogni elemento. Si scopre che era intorno a 10x più lento! L'ho testato con un array di zeri 10000x1000. Suppongo che sia la creazione di oggetti extra che causa il rallentamento.
A meno che qualcun altro può dimostrare il contrario, penso che la soluzione più semplice è in realtà il più veloce:
for (int row = 0; row < iArray.length; row++) {
for (int column = 0; column < iArray[0].length; column++) {
dArray[row][column] = (double) iArray[row][column];
}
}
fonte
2016-09-14 16:10:51
Sei sicuro ... ??? – Lion
Sì. Le mie fonti sono le mie ricerche sull'argomento. ;) Google ti porterà alla stessa conclusione. – Vache
+1. Questa è l'unica strada. Affare. –