java8 list列表去重

List list = response.getData().getList().stream().map(info -> {
    MerchantInfoOnlineResponse merchantInfo = merchantService.getOnlineMerchantInfo(info.getMerchantId());
    FeeTemplatesInfoResponse feeTemplatesInfoResponse = new FeeTemplatesInfoResponse();
    BeanUtils.copyProperties(info, feeTemplatesInfoResponse);
    return feeTemplatesInfoResponse;
}).collect(Collectors.toList()).stream().collect(
        Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getIntegrationType()+";"+o.getMerchantId()))), ArrayList::new));

最主要的下面的

stream().collect(
        Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getIntegrationType()+";"+o.getMerchantId()))), ArrayList::new));
其中getIntegrationType和getMerchantId就是去重条件 还有主要注意的是list的结果集要精简,把一些无关紧要的字段可以去掉 其实这个功能和我们sql里面的group by差不多

你可能感兴趣的:(JAVA,stream,list去重,Java8去重)