Stream.map()映射
List<User> userList = getUserList();
List<UserVO> userVOList = userList.stream().map(user -> {
UserVO userVO = new UserVO();
userVO.setUserId(user.getUserId()); // 省略set方法
return userVO;
}).collect(Collectors.toList());
.stream()
将一个集合转换为Stream流.collect()
用于结果的收集- Collectors 收集器将流转换成集合和聚合元素
Stream.filter()
比如需要获取集合中userId为奇数的集合:
List<User> userList = getUserList();
userList.stream()
.filter(user -> user.getUserId() % 2 == 1)
.forEach(user -> System.out.println("userId=" + user.getUserId()));
// 控制台输出
// userId=1
// userId=3
Stream.sorted()
private static List<User> getUserList() {
return Arrays.asList(new User().setUserId(1),
new User().setUserId(3),
new User().setUserId(2));
}
public static void main(String[] args) {
// User没有实现Comparable接口
List<User> userList = getUserList();
userList.stream()
// Exception in thread "main" java.lang.ClassCastException:
// User cannot be cast to java.lang.Comparable
.sorted()
.forEach(user -> System.out.println("userId=" + user.getUserId()));
}
public static void main(String[] args) {
List<User> userList = getUserList();
userList.stream()
.sorted((u1, u2) -> u2.getUserId() - u1.getUserId())
.forEach(user -> System.out.println("userId=" + user.getUserId()));
}
// 控制台输出
// userId=3
// userId=2
// userId=1
把一个list转换成以dto.getType()为key,List<MyDTO>为value的数据
Map<Integer, List<MyDTO>> collect = list.stream().collect(
Collectors.groupingBy(
dto -> dto.getType()
)
);
作者:读钓
链接:https://juejin.cn/post/6844904180188971022
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。