java stream流进行内存分页
stream 进行内存分页
int pageSize=templateCompanyListRequest.getPageSize();
int pageNum=templateCompanyListRequest.getPageNum();
int skipNum = pageSize*(pageNum - 1);
List<CompanyBaseInfo> companyTaxList2 = list.stream().skip(skipNum).limit(pageSize).collect(Collectors.toList());
stream 处理null字段的排序
null排在前,进行倒序排序
taxDraftTemplateDTOS = taxDraftTemplateDTOS.stream().sorted(Comparator.comparing(TaxDraftTemplateDTO::getGmtModify,Comparator.nullsFirst(Date::compareTo)).thenComparing(TaxDraftTemplateDTO::getGmtCreate).reversed()).collect(Collectors.toList());
null排在后,进行倒序排序
taxDraftTemplateDTOS = taxDraftTemplateDTOS.stream().sorted(Comparator.comparing(TaxDraftTemplateDTO::getGmtModify,Comparator.nullsLast(Date::compareTo)).thenComparing(TaxDraftTemplateDTO::getGmtCreate).reversed()).collect(Collectors.toList());
stream 过滤出不存在另一个list里面的数据
public static void main(String[] args) {
List<VatTypeDTO> vatTypeDTOS = new ArrayList<>();
for (int i = 1; i <=5; i++) {
VatTypeDTO vatTypeDTO = new VatTypeDTO();
vatTypeDTO.setVatCode(String.valueOf(i));
vatTypeDTO.setVatName("税种"+i);
vatTypeDTOS.add(vatTypeDTO);
}
List<VatTypeDTO> list = new ArrayList<>();
VatTypeDTO vatTypeDTO1 = new VatTypeDTO();
vatTypeDTO1.setVatCode("1");
vatTypeDTO1.setVatName("11");
VatTypeDTO vatTypeDTO2 = new VatTypeDTO();
vatTypeDTO2.setVatCode("3");
vatTypeDTO2.setVatName("33");
list.add(vatTypeDTO1);
list.add(vatTypeDTO2);
vatTypeDTOS = vatTypeDTOS.stream().filter(e -> !((list.stream().map(VatTypeDTO::getVatCode)).collect(Collectors.toList())).contains(e.getVatCode())).collect(Collectors.toList());
System.out.println(vatTypeDTOS);
}
stream 过滤出存在另一个list里面的数据
vatTypeDTOS = vatTypeDTOS.stream().filter(e -> ((list.stream().map(VatTypeDTO::getVatCode)).collect(Collectors.toList())).contains(e.getVatCode())).collect(Collectors.toList());
stream 删除Map中值为空的数据
filterConditionMap.entrySet().removeIf(entry -> entry.getValue() == null);