Java 8 lambdas 将列表分组到映射中
在Java 8中,引入了lambdas表达式,这使得在处理集合数据时变得更加简洁和便捷。其中一个强大的功能是将列表分组到映射中。这种功能可以在许多场景下很有用,例如统计数据,分类数据等。本文将介绍如何使用Java 8 lambdas将列表分组到映射中,并提供一个案例代码演示。案例代码:假设我们有一个包含学生信息的列表,每个学生都有一个姓名和年龄。我们想要将学生按照年龄进行分组,并将每个年龄组中的学生姓名存储在映射中。javaimport java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class Main { public static void main(String[] args) { List students = new ArrayList<>(); students.add(new Student("Alice", 20)); students.add(new Student("Bob", 22)); students.add(new Student("Charlie", 20)); students.add(new Student("David", 22)); students.add(new Student("Eve", 21)); Map> groupedStudents = students.stream() .collect(Collectors.groupingBy(Student::getAge, Collectors.mapping(Student::getName, Collectors.toList()))); System.out.println(groupedStudents); }}class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; }} 在这个例子中,我们创建了一个Student类来表示学生信息,并创建了一个包含学生对象的列表。然后,我们使用Java 8的Stream API将学生列表分组到映射中。在`groupingBy`方法中,我们指定了按照学生的年龄进行分组,并使用`mapping`方法将学生的姓名映射到一个列表中。最后,我们将分组后的映射打印出来。分组结果:{20=[Alice, Charlie], 21=[Eve], 22=[Bob, David]}从结果中可以看出,学生被成功地按照年龄进行了分组,并且每个年龄组中包含了对应学生的姓名。:通过使用Java 8 lambdas,我们可以轻松地将列表分组到映射中。这种功能在处理集合数据时非常有用,可以帮助我们进行数据的统计和分类。在本文中,我们通过一个案例代码演示了如何使用Java 8 lambdas将学生按照年龄分组,将学生姓名存储在映射中。希望这篇文章能帮助你更好地理解并应用Java 8 lambdas的强大功能。