过滤


List<CarSeriesModel> find = models.stream().filter(b->b.getCarModel() != null
        && b.getCarModel().equals("x5").collect(Collectors.toList());

指定字段去重,保留一条记录


list = list.stream().filter(b->b.getWipNo() != null).collect(
        Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getWipNo()))),
                ArrayList::new));

指定字段合计


Integer projectCount = listAgentSumCount.stream()
        .filter(b -> b.getAgentCount() > 1)
        .mapToInt(ProjectDto::getProjectCount).sum();
BigDecimal reduce1 = uniOrderMapper.selectList(queryWrapper7).stream().map(a->a.getAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);

正序


result.sort(Comparator.comparing(GroupModel::getLValue));

倒序


result.sort(Comparator.comparing(GroupModel::getLValue).reversed());

多字段排序


agents.sort(Comparator.comparing(UpProjectDto::getCheckQty).thenComparing(UpProjectDto::getAgentQty));

分组count


Map<String, Long> map2 = lsProject.stream().filter(b -> b.getAgentId().equals(t.getAgentId())).collect(
        Collectors.groupingBy(Project::getRegionCode, Collectors.counting()));

分组sum


//intger值分组
Map<String, Double> map1 = lsTask.stream().filter(b -> b.getAgentId().equals(t.getAgentId())).collect(
        Collectors.groupingBy(PrepareProjectAllot::getRegionCode, Collectors.summingDouble(PrepareProjectAllot::getCheckQty)));

//bigdecimal值分组


Map<String, BigDecimal> sumMap = lp.stream().collect(
        Collectors.groupingBy(BrokerageOrder::getUserId,
                Collectors.reducing(BigDecimal.ZERO, BrokerageOrder::getPayAmount, BigDecimal::add)));

//分组统计count


Map<String, Long> countMap = lp.stream().collect(
    Collectors.groupingBy(BrokerageOrder::getUserId, Collectors.counting()));


//对分组对象进行处理
List<BrokerageTotalDto> res = new ArrayList<>();
for(Map.Entry<String, Long> entry:countMap.entrySet()){
    String userId = entry.getKey();//取key
    Double amount = sumMap.get(userId);//
    BrokerageTotalDto dto = new BrokerageTotalDto();
    dto.setUserId(userId);
    dto.setCount(entry.getValue());//取value
    dto.setAmount(amount);
    res.add(dto);
}

列表转字符串


String roleIds = list.stream().map(SysUserRole::getRoleId).collect(Collectors.joining(","));

String[]转List<String>

String result = "A,B,C,D";
String[] arr = result.split(",");
List<String> list = Arrays.asList(arr);

List<String>排序

Collections.sort(list);

List<String>转字符串

 String results = String.join(",", list);
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐