【Java】Streamの使い方まとめてみた
Streamの生成
StreamはList、Setはstream()メソッド、MapはentrySet().stream()メソッド、配列はStream.of()メソッドを使用することで生成できます。
//ListのStreamを取得する
List<String> lst = new ArrayList<>();
Stream <String> streamlist = lst.stream();
//SetのStreamを取得する
Set<String> set = new HashSet<>();
Stream <String> streamset = set.stream();
//MapのStreamを取得する
Map<String, String> map = new HashMap<>();
Stream <Map.Entry<String,String>> stream = map.entrySet().stream();
//配列のStreamを取得する
String[] array = {"1","2","3","4"};
Stream <String> streamarray = Stream.of(array);
forEach:要素の繰り返し処理
forEachを使用すると、要素の繰り返し処理を実施することができます。
List<String> lst = Arrays.asList("1","2","3","4");
Stream <String> streamlist = lst.stream();
streamlist.forEach(s -> System.out.println(s));
//実行結果
1
2
3
4
count() :要素数を取得する
count()メソッドを使用すると、Streamの要素数を取得することができます。
List<String> lst = new ArrayList<>();
Stream <String> streamlist = lst.stream();
System.out.println(streamlist.count());
lst.add("1");
lst.add("2");
Stream <String> streamlist2 = lst.stream();
System.out.println(streamlist2.count());
//実行結果
0
2
distinct():重複要素を排除
distinct()メソッドを使用すると、Streamの重複要素を排除ことができます。
List<String> lst = Arrays.asList("1","2","3","3");
Stream <String> streamlist = lst.stream();
Stream <String> streamlist2 = lst.stream();
System.out.println(streamlist.count());
System.out.println(streamlist2.distinct().count());
//実行結果
4
3
filter:条件に合致する要素のみStreamを取得
filterを使用すると、条件に合致する要素のみStreamを取得することができます。
List<String> lst = Arrays.asList("1","2","3","4","2","2","4");
Stream <String> streamlist = lst.stream();
long l = streamlist.filter(s -> s.equals("2")).count();
System.out.println(l);
//実行結果
3
concat:Streamを連結
concatを使用すると、連結したStreamを取得することができます。
Stream <String> stm1 = Stream.of("1","2","3");
Stream <String> stm2 = Stream.of("4","5","6");
Stream <String> stm3 = Stream.concat(stm1, stm2);
stm3.forEach(System.out ::println);
//実行結果
1
2
3
4
5
6
sorted:要素をソート
sortedを使用すると、自然順序付けでソートします。
Stream <String> stm = Stream.of("5","2","3","1");
stm.sorted().forEach(System.out ::println);
//実行結果
1
2
3
5









コメントを残す