コレクションを簡単にフィルター処理するために、Java 8ラムダをいじっていました。しかし、同じステートメント内で新しいリストとして結果を取得する簡潔な方法は見つかりませんでした。これまでのところ、私の最も簡潔なアプローチは次のとおりです。
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
新しい結果リストを生成せずに停止したため、ネット上の例は私の質問に答えませんでした。より簡潔な方法があるはずです。私がいることを、期待したStream
クラスには、などのメソッドがありtoList()
、toSet()
...
targetLongList
3行目で変数を直接割り当てる方法はありますか?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongList
後で必要がなくなった場合のCollection.removeIf(…)
ためにあります。