Collections 初級

メソッド参照を使ってストリームを型付き配列に変換する。

✕ Pre-Streams
List<String> list = getNames();
String[] arr = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
    arr[i] = list.get(i);
}
✓ Java 8+
String[] arr = getNames().stream()
    .filter(n -> n.length() > 3)
    .toArray(String[]::new);
このコードに問題がありますか? お知らせください。
🎯

型安全

Object[]のキャストなしで、配列の型が正確です。

🔗

連鎖可能

任意のストリームパイプラインの末尾で動作します。

📏

簡潔

手動ループを1つの式に置き換えます。

旧来のアプローチ
手動配列コピー
モダンなアプローチ
toArray(ジェネレータ)
JDKバージョン
8
難易度
初級
型付きストリームのtoArray
利用可能

JDK 8(2014年3月)以降、広く利用可能

toArray(IntFunction)メソッドはストリームから適切に型付けされた配列を作成します。ジェネレータ(String[]::new)は、ストリームが作成する配列の型を指定します。

共有 𝕏 🦋 in