Suu*_*ule 5 java java-8 java-stream
我想知道如何在Stream Api的帮助下缩短我的代码.假设我有这样的方法:
public static void createFile( String directoryPath, String fileName )
Run Code Online (Sandbox Code Playgroud)
我想用相同的参数调用这个方法5次.例如
for (int i = 0; i < 5; i++) {
Utils.createFile(getDirectoryLocation(), "test.txt");
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做:
IntStream.rangeClosed(1, 5).forEach(Utils::someMethod);
Run Code Online (Sandbox Code Playgroud)
但在这里,我将一个整数值传递给方法.任何人都可以给我一些提示或答案?
Streams在这里并不是真正有用,一个简单的循环会更好IMO.但如果你真的想,你可以通过lambda(忽略x ...)来编写它:
IntStream.rangeClosed(1, 5).forEach(x -> Utils.createFile(getDirectoryLocation(), "test.txt"));
Run Code Online (Sandbox Code Playgroud)
我猜一个更丑陋的方式可能是:
Stream.generate(() -> "test.txt")
.limit(5)
.forEach(x -> Utils.createFile(getDirectoryLocation(), x));
Run Code Online (Sandbox Code Playgroud)
或更好:
Collections.nCopies(5, "test.txt")
.forEach(x -> Utils.createFile(getDirectoryLocation(), x));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |