6
Javaストリームでは、デバッグのみを目的としていますか?
私はJavaストリームについて読んでいて、進むにつれて新しいものを発見しています。私が見つけた新しいものの1つはpeek()機能でした。私がピークで読んだほとんどすべては、それをストリームのデバッグに使用する必要があると述べています。 各アカウントにユーザー名、パスワードフィールド、login()メソッドとlogsIn()メソッドが含まれるストリームがある場合はどうなりますか。 私も持っています Consumer<Account> login = account -> account.login(); そして Predicate<Account> loggedIn = account -> account.loggedIn(); なぜこれがそんなに悪いのでしょうか? List<Account> accounts; //assume it's been setup List<Account> loggedInAccount = accounts.stream() .peek(login) .filter(loggedIn) .collect(Collectors.toList()); 今、私が知る限り、これは意図したとおりに動作します。それ; アカウントのリストを取得します 各アカウントへのログインを試みます ログインしていないアカウントを除外します ログインしたアカウントを新しいリストに収集します このようなことの欠点は何ですか?続行しない理由はありますか?最後に、このソリューションでない場合はどうなりますか? これの元のバージョンは、次のように.filter()メソッドを使用しました。 .filter(account -> { account.login(); return account.loggedIn(); })
137
java
java-8
java-stream
peek