Java List Stream流,去空,字段赋值,去重
1.实体类
@Data
public class User {
private String id;
private String name;
private String nickname;
private String sex;
private String age;
private String type;
}
2.去空
public void removeEmpty() {
List<User> userList=new ArrayList<>();
userList.add(new("1","用户1","yonghu1","女","22","0"));
userList.add(new("2","用户2","yonghu2","男","24","0"));
userList.add(new("3","用户3","yonghu3","女","24","0"));
userList.add(new("4","用户4","yonghu4","男","23","0"));
List<User> list= userList.stream()
.filter(User -> User.getId()!=null && User.getName()!=null)
.collect(Collectors.toList());
}
3.赋值
public void setValue() {
List<User> userList=new ArrayList<>();
userList.add(new("1","用户1","yonghu1","女","22","0"));
userList.add(new("2","用户2","yonghu2","男","24","0"));
userList.add(new("3","用户3","yonghu3","女","24","0"));
userList.add(new("4","用户4","yonghu4","男","23","0"));
List<User> list= userList.stream()
.map(object -> {
User user = new User();
BeanUtils.copyProperties(object, user);
user.setType("1");
return user;
})
.collect(Collectors.toList());
}
4.去重
public void removeRepeat() {
List<User> userList=new ArrayList<>();
userList.add(new("1","用户1","yonghu1","女","22","0"));
userList.add(new("2","用户2","yonghu2","男","24","0"));
userList.add(new("3","用户3","yonghu3","女","24","0"));
userList.add(new("4","用户4","yonghu4","男","23","0"));
userList= userList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>
(Comparator.comparing(User::getId))), ArrayList::new)
);
}