Stream API

Stream APIとは

Listなどで、各要素に対し処理を行うメソッド。まず、streamを取得する。Listの場合、stream()メソッドを使用する。次に、中間操作を必要なだけ行う。最後に終端操作を行う。

List<String> list = new ArrayList<>(Arrays.asList("佐藤", "鈴木", "佐々木"));

// 各要素に 様を付ける
List<String> list2 = list.stream().map(a -> a + "様").toList();
// Userクラスnameが鈴木を探す
User name = list.stream()
				.filter(a -> a.getName().equals("鈴木"))
				.findFirst()
				.orElse(null);

中間操作

map(要素 -> 処理)各要素を変換するmap(a -> a + "様")
filter(要素 -> 条件)条件に合った要素の抽出filter(a -> a.length()>3)
distinct()重複排除distinct()
sorted()整列sorted()・・昇順
sorted((a,b) -> b - a)・・降順
limit(数値)要素数の制限limit(3)
skip(数値)要素のスキップskip(2)

終端操作

count()要素数を返すcount()
forEach(要素 -> 処理)各要素の処理forEach(System.out::println)
findFirst()先頭要素を返す(Optional)findFirst().orElse(null)
toList()リストで返すtoList()
toArray()配列で返すtoArray()
allMatch(要素 -> 条件)条件が全要素マッチするかallMatch(a -> a.length()>3)
anyMatch(要素 -> 条件)条件が1要素でもマッチするかanyMatch(a -> a.length()>3)
noneMatch(要素 -> 条件)条件が一致するものが無いかnoneMatch(a -> a.length()>3)

IntStream

sum()合計を返す
average()平均を返す
max()最大値を返す(Optional)
min()最小値を返す(Optional)