list转map的操作

list转map,key单个字段,value是一个对象

Map<String,DemoTestPo>  map = list.stream().collect(Collectors.toMap(DemoTestPo::getName, a -> a,(k1,k2)->k1));

list转map,key单个字段,value是list数组 里面有多个对象

Map<String,List<DemoTestPo>>  map = list.stream().collect(Collectors.groupingBy(DemoTestPo::getName));

list转map,key多个字段拼接,value是一个由多个字段拼接的String

Map<String,String> map = list.stream().collect(Collectors.toMap(k->
                                                    k.getName()+k.getLineName()+k.getCompanyName()+k.getAuthName()+k.getClassify()+k.getStartTime()+k.getEndTime(), h->
                                                    h.getCompanyName()+";"+h.getLineName()+";"+h.getCompanyName()+h.getClassify(),(oldValue, newValue) -> newValue));

list转map,key多个字段拼接,value是list数组 里面有多个对象

Map<String,List<DemoTestPo>>  map = list.stream().collect(Collectors.groupingBy(k->k.getName()+k.getClassify()));

list转map,key单个字段,value是list数组 里面只存某个字段

Map<String,List<String>> map = list.stream().collect(Collectors.groupingBy(DemoTestPo::getName,Collectors.mapping(DemoTestPo::getAge, Collectors.toList())));
udiTempPOList.stream().mapToInt(OdcPurchaseOrderStockApplyUdiTempPO::getArrivalNum).sum()
BigDecimal decimal = odcPurchaseOrderItemPsLists.stream().map(OdcPurchaseOrderItemOsUdiTemporaryPO::getDetailAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
resList.removeIf(bean -> {
            bean.setProductCode(bean.getProductCode().trim());
            bean.setLotNum(bean.getLotNum().trim());
            bean.setProdTime(bean.getProdTime().trim());
            bean.setExpireTime(bean.getExpireTime().trim());
            if (StringUtil.isBlank(bean.getProductCode()) && StringUtil.isBlank(bean.getLotNum()) && StringUtil.isBlank(bean.getProdTime())
                    && StringUtil.isEmpty(bean.getExpireTime()) && bean.getArrivalNum() == 0) {
                return true;
            }
            if ("".equals(bean.getProductCode()) && "".equals(bean.getLotNum()) && "".equals(bean.getProdTime())
                    && "".equals(bean.getExpireTime()) && bean.getArrivalNum() == 0) {
                return true;
            }
            return false;
        });

根据某个字段分组,返回另一个字段组成的list

Map<String,List<String>> map = list.stream().collect(Collectors.groupingBy(Student::getSex,Collectors.mapping(Student::getName, Collectors.toList())));

对有对象的list,判断某个字段是否重复
https://blog.csdn.net/weixin_42408447/article/details/120100269

你可能感兴趣的:(java)