steam流对List<User> 根据班级分组
时间: 2023-07-08 11:04:43 浏览: 308
可以使用Java 8的Stream API和Collectors.groupingBy()方法来对List<User>根据班级进行分组,示例如下:
假设User类中有班级属性classId,代码如下:
```
public class User {
private String name;
private int age;
private String classId;
// constructor, getter and setter methods
}
```
对List<User>根据班级分组的代码如下:
```
Map<String, List<User>> classMap = userList.stream()
.collect(Collectors.groupingBy(User::getClassId));
```
其中,User::getClassId是一个方法引用,用于获取User对象的classId属性值。上述代码将userList根据classId属性进行分组,返回类型为Map<String, List<User>>,其中键为classId,值为对应班级的User列表。
相关问题
steam流分组函数
Steam流分组函数是指将一个无限流按照某个规则进行分组,返回一个有限的流。在Java 8中,可以使用Collectors.groupingBy()方法来实现Steam流分组函数。例如,将一个字符串流按照首字母进行分组:
```
List<String> list = Arrays.asList("apple", "banana", "pear", "orange");
Map<Character, List<String>> result = list.stream().collect(Collectors.groupingBy(s -> s.charAt(0)));
```
这样就可以得到一个Map,其中键为首字母,值为以该字母开头的字符串列表。
阅读全文
相关推荐









