简介:
本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。
List对象类(OnlineRegister)
测试数据:
使用filter()过滤List
此处是要通过一个id值获取符合这个id值的集合数据,此处的id值还不明确,所以测试的时候是写死的。然后再根据这个id值筛选出来的集合对象进行下一步筛选过滤,通过传入的参数进行筛选匹配符合的集合对象。
//1. 筛选当前子系统的数据 todo 带获取systemId
Integer systemId = 1;
if(systemId != null){
onlineRegisters = onlineRegisters.stream().filter(info -> null != info.getSystemId() && info.getSystemId().equals(systemId)).collect(Collectors.toList());
}
//2. 根据条件筛选
if(!StringUtils.isEmpty(listVoterVO.getName())){
//根据用户筛选
onlineRegisters = onlineRegisters.stream().filter(info -> !StringUtils.isEmpty(info.getUserName()) && info.getUserName().contains(listVoterVO.getName())).collect(Collectors.toList());
}
if(!StringUtils.isEmpty(listVoterVO.getHouseholdRegistration())){
//根据户籍地区县筛选
onlineRegisters = onlineRegisters.stream().filter(info -> !StringUtils.isEmpty(info.getHouseholdRegistration()) && info.getHouseholdRegistration().contains(listVoterVO.getHouseholdRegistration())).collect(Collectors.toList());
}
if(!StringUtils.isEmpty(listVoterVO.getCandidateType())){
//根据参选地类型筛选
onlineRegisters = onlineRegisters.stream().filter(info -> !StringUtils.isEmpty(info.getCandidateType()) && info.getCandidateType().equals(listVoterVO.getCandidateType())).collect(Collectors.