1. ホーム
  2. java

[解決済み] Java 8 StreamをArrayに変換する方法は?

2022-03-19 19:59:50

質問

Java 8.0からJava 8.0に変換する最も簡単な方法と最短の方法は何ですか? Stream を配列に変換できますか?

どのように解決するのですか?

最も簡単な方法は toArray(IntFunction<A[]> generator) メソッドに配列のコンストラクタを参照させます。これは メソッドの API ドキュメント .

String[] stringArray = stringStream.toArray(String[]::new);

これは、引数として整数(サイズ)を受け取るメソッドを見つけ、そのメソッドから String[] のオーバーロードの1つ)である。 new String[] が行う。

また、自分で IntFunction :

Stream<String> stringStream = ...;
String[] stringArray = stringStream.toArray(size -> new String[size]);

の目的は IntFunction<A[]> generator は、配列のサイズである整数を、新しい配列に変換することです。

コード例です。

Stream<String> stringStream = Stream.of("a", "b", "c");
String[] stringArray = stringStream.toArray(size -> new String[size]);
Arrays.stream(stringArray).forEach(System.out::println);

プリントする。

a
b
c