Java ListのgroupByとは?使い方と実装例を解説
Javaにおいて、ListのgroupByメソッドは通常、Stream APIのgroupByメソッドを使用してList内の要素をグループ化することを指します。具体的な機能は、List内の要素を特定の条件でグループ化し、Mapオブジェクトを返すことで、キーがグループ化条件で値がその条件に合致する要素のリストとなります。
たとえば、複数の学生オブジェクトが含まれるリストがあるとします。各学生オブジェクトには名前と年齢の属性があり、groupByメソッドを使用して年齢でグループ化することができます。同じ年齢の学生を同じリストに入れることで、データを簡単に分類して統計分析することができます。
以下はサンプルコードです。
List<Student> students = Arrays.asList(
new Student("Alice", 20),
new Student("Bob", 22),
new Student("Charlie", 20),
new Student("David", 21)
);
Map<Integer, List<Student>> groupedByAge = students.stream()
.collect(Collectors.groupingBy(Student::getAge));
groupedByAge.forEach((age, studentList) -> {
System.out.println("Students with age " + age + ":");
studentList.forEach(student -> {
System.out.println("- " + student.getName());
});
});
上記のコードは、学生オブジェクトを年齢でグループ化し、それぞれの年齢層に対応する学生リストを出力します。groupByメソッドはコードの論理を簡素化し、可読性と保守性を向上させるのに役立ちます。