Streams 初級

終端操作toList()が冗長なcollect(Collectors.toList())を置き換える。

✕ Java 8
List<String> result = stream
    .filter(s -> s.length() > 3)
    .collect(Collectors.toList());
✓ Java 16+
List<String> result = stream
    .filter(s -> s.length() > 3)
    .toList();
このコードに問題がありますか? お知らせください。
📏

7文字対24文字

.toList()が.collect(Collectors.toList())を置き換えます。

🔒

不変

結果のリストは変更できません。

📖

流暢

パイプラインの末尾で自然に読めます。

旧来のアプローチ
Collectors.toList()
モダンなアプローチ
.toList()
JDKバージョン
16
難易度
初級
Stream.toList()
利用可能

JDK 16(2021年3月)以降、広く利用可能

Stream.toList()は変更不可能なリストを返します。.collect(Collectors.toUnmodifiableList())と同等ですが、はるかに短く書けます。注意点として、Collectors.toList()とは異なり、結果は不変です。

共有 𝕏 🦋 in