三种流处理方法的区别
jdk8中的新特性,流处理方式,都是用来对数据进行遍历处理,获取最终想要的结果!
.peek 返回值是和之前流泛型相同的流, 多用于打印中间操作时元素数据,属于中间流,不能形成新的流
.forEach 和 peek 类似,不同的是 foreach 没有返回参数,会中断流操作,只能用来遍历,不能再进行后续的流处理
.map 用于对流中的每个元素进行映射处理,然后再形成新的流
private List userList = new ArrayList() {{
add(new User(“小三”,“20”));
add(new User(“小四”,“21”));
add(new User(“小五”,“22”));
}};
.map流处理
对象User赋值到对应的UserDto上
List<UserDto> userDtos = userList.stream().map(user ->{
UserDto dto = new UserDto();
BeanUtils.copyProperties(user, dto);
return dto;
}).collect(Collectors.toList());
list对象中的数据进行处理,比如名称前面加前缀
userList = userList.stream().map(item->{
if("小四".equala(item.getName())){
item.setAge("23");
}
item.setName("AA"+item.getName());
return item;
}).collect(Collectors.toList());
.foreach
list对象中的数据进行处理,比如名称前面加前缀
userList= userList.stream().foreach(item->{
if("小四".equala(item.getName())){
item.setAge("23");
}
item.setName("AA"+item.getName());
});
.peek
list对象中的数据进行处理,比如名称前面加前缀
userList = userList.stream().peek(item->{
if("小四".equala(item.getName())){
item.setAge("23");
}
item.setName("AA"+item.getName());
}).collect(Collectors.toList());