我不知道是否有做在Java中8流以下的更濃縮的方式:讓一個編輯的Java 8矩陣*向量乘法
public static double[] multiply(double[][] matrix, double[] vector) {
int rows = matrix.length;
int columns = matrix[0].length;
double[] result = new double[rows];
for (int row = 0; row < rows; row++) {
double sum = 0;
for (int column = 0; column < columns; column++) {
sum += matrix[row][column]
* vector[column];
}
result[row] = sum;
}
return result;
}
。我收到了很好的答案,但是性能大約是10倍比舊的執行速度較慢,所以我加入這裏的測試代碼的情況下,有人想調查此事:
@Test
public void profile() {
long start;
long stop;
int tenmillion = 10000000;
double[] vector = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
double[][] matrix = new double[tenmillion][10];
for (int i = 0; i < tenmillion; i++) {
matrix[i] = vector.clone();
}
start = System.currentTimeMillis();
multiply(matrix, vector);
stop = System.currentTimeMillis();
}
Tunaki嗨 - 感謝 - 這工作!儘管如此,我對於表演有點驚訝。對於有1000萬行的矩陣,它需要10倍的時間才能完成...所以我想我會堅持'舊'循環。不過謝謝。 – Ole