对list集合进行分组后转为list
时间: 2024-09-23 09:05:34 浏览: 29
java中如何将数组转为list集合
当你需要将一个List集合按照某个条件进行分组,并希望得到的结果仍然是List形式时,通常会先使用Java 8的Stream API进行分组,然后再用`toList()`方法将每个分组转化为一个新的List。
假设我们有这样一个List,包含一些Student对象,每个Student有一个grade属性:
```java
List<Student> students = Arrays.asList(
new Student("Alice", "Grade 1"),
new Student("Bob", "Grade 2"),
new Student("Charlie", "Grade 1"),
new Student("David", "Grade 3")
);
```
我们可以按照grade进行分组并转换为新的List,示例如下:
```java
Map<String, List<Student>> groupedStudents = students.stream()
.collect(Collectors.groupingBy(Student::getGrade));
// 将每个分组转化为新的List
List<List<Student>> gradeLists = groupedStudents.values().stream()
.map(group -> group.toList())
.collect(Collectors.toList());
```
现在`gradeLists`就是一个二维的List,外层是grade名,内层是属于该年级的学生列表。
阅读全文