Contents
【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
コメントを残す