ストリームを配列に変換する方法を紹介します。
1. Stream.toArray()でStreamを配列に変換
Stream.toArray(Type[]::new)
はストリームを配列に変換します。
次の例では、文字列のストリームを文字列配列に変換します。
import java.util.ArrayList;
import java.util.List;
public class ConvertStreamToArray {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
String[] result = list.stream()
.map(String::toUpperCase)
.toArray(String[]::new);
for (String s : result) {
System.out.println(s);
}
}
}
Output:
A
B
C
他のタイプも上記と同じ方法で配列に変換できます。
以下は List<Integer>
を Integer[]
に変換する例です。
import java.util.ArrayList;
import java.util.List;
public class ConvertStreamToArray2 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Integer[] result = list.stream()
.map(x -> x*x)
.toArray(Integer[]::new);
for (Integer n : result) {
System.out.println(n);
}
}
}
Output:
1
4
9
2. IntStreamを配列に変換
IntStreamを Integer[]
または int[]
に変換できます。
LongStream、DoubleStreamなどもIntStreamと同じ方法で配列に変換できます。
2.1 Stream -> Integer[]
Stream を Integer[]
に変換する場合は boxed()
で int を Integer に変換した後に Array に変換します。
import java.util.Arrays;
import java.util.stream.IntStream;
public class ConvertStreamToArray3 {
public static void main(String[] args) {
int[] num = {1, 2, 3};
IntStream intStream = Arrays.stream(num);
Integer[] result = intStream
.map(x -> x*x)
.boxed()
.toArray(Integer[]::new);
for (Integer n : result) {
System.out.println(n);
}
}
}
Output:
1
4
9
2.2 Stream -> int[]
ストリームを int[]
に変換する場合、 toArray()
に変換させることができます。
import java.util.Arrays;
import java.util.stream.IntStream;
public class ConvertStreamToArray4 {
public static void main(String[] args) {
int[] num = {1, 2, 3};
IntStream intStream = Arrays.stream(num);
int[] result = intStream
.map(x -> x*x)
.toArray();
for (int n : result) {
System.out.println(n);
}
}
}
Output:
1
4
9
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法