Javaの:含ま対anyMatch対減らします

ealeon:
 List<Boolean> results = new ArrayList<>();
 results.add(true);
 results.add(true);
 results.add(true);
 results.add(false);

 if (results.contains(false)) {
     System.out.println(false);
 } else {
     System.out.println(true);
 }

 System.out.println(results.stream().reduce((a, b) -> a && b).get());
 //System.out.println(!results.stream().anyMatch(a -> a == false));
 System.out.println(!results.stream().anyMatch(a -> !a));

OUTPUT:


FYI、結果が収集OP +マップの結果であります

List<Job> jobs;
List<Boolean> results = job.stream().map(j -> j.ready()).collect(Collector.toList())

私はどちらか減らすかanyMatchを選択した場合、私は、マップ操作の結果を収集する必要はありません。

ブール値のリストである結果から、私は少なくとも一つの虚偽があった場合はfalseを返すようにしたいです。

私は軽減またはanyMatch経由でそれを行うことができます。私はちょっと減らすからオプション好きではない、と私は否定anyMatchに持っているように私にはちょっとありません

いずれかを使用してのための任意の長所/短所はありますか?

ミーシャ:

いくつかがあるかどうかをチェックすることができますので、あなたがリストにブール値を収集している唯一の理由があることが表示されますfalse

私はどちらか減らすかanyMatch、私は地図操作からの結果を収集する必要はありません選択した場合は、[...]私は少なくとも一つの虚偽があった場合はfalseを返すようにしたいです。

このような場合は、その後、あなたは間違いなく簡単なストリームベースのアプローチを検討する必要があります。

return jobs.stream().allMatch(Job::ready);

おすすめ

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