Java GroupByの使い方:集計処理を徹底解説
JavaのStream APIを使用すると、データをグループ化することができます。Collectors.groupingBy()メソッドを使用すると、SQLのGROUP BYと同様の機能を実現できます。groupingBy()メソッドを使用すると、指定された条件でデータをグループ化し、その後各グループごとに操作や集計を行うことができます。
以下は具体的な使用法です:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "grape", "apple", "orange", "banana");
// 将水果按照首字母进行分组
Map<Character, List<String>> groupByFirstLetter = fruits.stream()
.collect(Collectors.groupingBy(s -> s.charAt(0)));
System.out.println(groupByFirstLetter);
}
}
上記の例では、果物を最初の文字でグループ化して、Mapオブジェクトを取得しました。キーは果物の最初の文字で、値は対応する最初の文字の果物リストです。コードを実行すると、以下の結果が出力されます。
{a=[apple, apple], b=[banana, banana], g=[grape], o=[orange]}
このように、果物を最初の文字でグループ化する機能が実現されました。groupingBy()メソッドは、Collectors.counting()、Collectors.summingInt()などのメソッドと組み合わせて、さらなる操作を行うことができ、より複雑なグループ統計機能を実現することができます。