【发布时间】:2014-11-20 22:21:51
【问题描述】:
我是 Java 8 的新手,目前无法完全掌握 Streams,是否可以使用 Stream 函数操作填充数组?这是我将如何使用标准 for 循环执行此操作的示例代码:
public static void testForLoop(){
String[][] array = new String[3][3];
for (int x = 0; x < array.length; x++){
for (int y = 0; y < array[x].length; y++){
array[x][y] = String.format("%c%c", letter(x), letter(y));
}
}
}
public static char letter(int i){
return letters.charAt(i);
}
如果可能的话,我将如何使用 Stream 来做到这一点?如果可能,是否方便(性能和可读性)?
【问题讨论】:
-
不是很相关,但我认为您的意思是
array[x].length用于内部循环。 -
是的,我确实做到了
-
只需使用标准的 for 循环。您的代码简单明了,对读者来说很明显。尽管流解决方案看起来很优雅,但我没有看到它在这里添加任何东西。
-
@SaintHill 因为实际代码使用具有数万到数十万个不同对象的 3d 数组,我想测试 Stream 方法是否比标准 for-loop 更快:)
-
阵列的总大小比普通流的 200(可能取决于处理器)要快一些。总大小超过 1000 个并行流,速度要快得多。 (我使用的是 QuadCore i5-3570k,64 位
标签: java arrays functional-programming java-8 java-stream