反復可能なアクションのためのストリームAPIの使用方法

口:

私は、ストリームAPIを利用して自分のコードを短縮する方法を知っていただきたいと思います。のは、私はこのような方法があるとしましょう:

public static void createFile( String directoryPath, String fileName )

そして、私は同じパラメータで、この方法を5回呼び出すしたいと思います。例えば

        for (int i = 0; i < 5; i++) {
            Utils.createFile(getDirectoryLocation(), "test.txt");
        }

私はこのような何かを行うことができます知っています:

IntStream.rangeClosed(1, 5).forEach(Utils::someMethod);

しかし、ここで私は、メソッドに1つの整数値を渡しています。誰も私にいくつかのヒントや答えを与えることができますか?

ユージン:

ストリームは、単純なループが良いIMOだろう、ここでは本当に便利ではありません。あなたはしかし、もし本当にしたかった、あなたは、ラムダ(Xを無視して...)を経由して、それを書くことができます:

IntStream.rangeClosed(1, 5).forEach(x -> Utils.createFile(getDirectoryLocation(), "test.txt"));

私は1つの以上醜いの方法は、可能性が推測します:

Stream.generate(() -> "test.txt")
            .limit(5)
            .forEach(x -> Utils.createFile(getDirectoryLocation(), x));

またはよりよいです:

Collections.nCopies(5, "test.txt")
           .forEach(x -> Utils.createFile(getDirectoryLocation(), x));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=178878&siteId=1