この記事では、ストリームオブジェクトを生成する3つの方法について説明します。
例えば、int型の配列からストリームオブジェクトを作成するには以下のように記述します。
Java
//int型の配列を生成
int iArray[] = {1,2,3,4,5};
//配列を基にintStreamオブジェクトを作成
IntStream iStream = Arrays.stream(iArray);
//ストリームの内容を出力
iStream.forEach(System.out::print);//12345
この他には、long型配列から生成するLongStream
、double型配列から生成するDoubleStream
があります。
java.util.Collection
インターフェースにDefaultメソッドとして追加されたstream
メソッドを用いることで、既存のコレクション・オブジェクトをストリーム・オブジェクトに変換することができます。
Collectionインターフェースが持つstream()
を使用してstreamオブジェクトを生成することができます。
Java
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
Stream<String> stream = list.stream();
stream.map(n -> n + "10").forEach(System.out::println);
実行結果
A10
B10
C10
D10
E10
Java
Map<Integer,String> map = new TreeMap<>();
map.put(1,"A");
map.put(2,"B");
map.forEach((K,V)->System.out.println(K + V));
実行結果
1A
2B
複数の参照型オブジェクトからStreamオブジェクトを取得するには.of()
を使用します。
.of()
は可変長引数であるため、任意の数のオブジェクトを渡すことができます。
Java
ArrayList<String> list1 = new ArrayList<>();
list1.add("str1");
list1.add("str2");
list1.add("str3");
ArrayList<String> list2 = new ArrayList<>();
list2.add("str4");
list2.add("str5");
list2.add("str6");
//2つのlistをストリームオブジェクトに変換
Stream<ArrayList<String>> stream = Stream.of(list1,list2);
//出力
stream.flatMap(l -> l.stream()).forEach(System.out::println);
実行結果
str1
str2
str3
str4
str5
str6
以上で記事の解説はお終い!
もっとJavaやSpringを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!