2020-10-19

String[] pf = {"电器_货值赔付","电器_服务赔付"}
List<String> pfList = Arrays.asList(pf);
将数组转为集合,通过java8流的方式来判断某一属性值是否存在于我们定义的变量中
String parameter1 = "电器_货值赔付";
wlfList.stream().filter(s->parameter1.indexOf(s) != -1).findFirst().isPresent()
将会返回true
String parameter2 = "电器";
wlfList.stream().filter(s->parameter2.indexOf(s) != -1).findFirst().isPresent()
返回false

通过java8将List通过某一属性过滤后转为list

List<bean> list = new ArrayList<>();
list.add("");
在使用java8时操作对象(list)不可以为空必须要有前序判断否则会报空指针
if(CollCollectionUtils.isNotEmpty(list)){
    list.stream().filter(a ->条件).collect(Collectors.toList());
}
条件:   0 == a.getStatus()
        "0".equals(a.getCurrentStatus())
        parameter1.indexOf(s) != -1等

list转map
Map<String,bean> purComMap = list.stream()
                                        .collect(Collectors.toMap(bean::getGoodsMxId, a->a));

Map<String,bean> proxySaleComMap = list.stream()
                                                    .collect(
                                                            Collectors.toMap(bean::getCommoditySkuId , (p) -> p , (k,v)->v)
                                                            );
list通过某一属性分组            
Map<String,List<bean>>    purStockGoodsMap = list.stream()
                    .collect(
                        Collectors.groupingBy(bean::getStockId)
                    );

Optional<bean> optional = list.stream().filter(a->条件)
                        .findAny();
optional.isPresent()-->true/false
例如:
list.stream()
    .forEach(bean->{
        if(!bean.stream()
                .filter(bean->参数!=-1)
                .findAny()
                .isPresent()){
             throw new ServiceException("操作失败",-70001,"service异常");
        };
    });

findAny()方法和findFirst()有什么区别呢?
findAny返回随机值
findFirst返回第一个

去出集合list中的某个属性下的list1
然后将list1的数据进行java8巨像后返回
List<String> snListAll =
                        liat.stream()
                            .filter(a->a.getCainiaoOrderSnList()!=null && a.getCainiaoOrderSnList().size()>0)
                            .flatMap(a->a.getCainiaoOrderSnList().stream())
                            .map(a->a.getSnCode().toUpperCase())
                            .collect(Collectors.toList())
                            ;
与常规操作不通点我们引入了flatMap,这个在这里的主要作用是对流进行扁平化

java8排序
lsit = list.stream().sorted(Comparator.comparing(bean::getVo)).collect(Collectors.toList());
java8 forEach()方法使用
list.stream()
            .forEach(bean->{
                 if(StringUtils.isEmpty(bean.getBoxId()))
                     throw new ServiceException("装箱算法失败",-70001,"service异常");
                 if(box.getWeightFactor()==0)
                     throw new ServiceException("装箱算法失败",-70001,"service异常");
            });

java8合并数据
Map<String, bean> allotComLogMap = list.parallelStream()
                .collect(Collectors.toMap(a -> a.getCommodityId() + a.getCommoditySkuId(), (p) -> p, (k, v) -> {
                    k.setQuantity(k.getQuantity().add(v.getQuantity()));
                    return k;
                }));

map转list
new ArrayList<bean>(allotComLogMap.values())

java8返回BigDecimal
BigDecimal allotCount = allotLogList.stream().map(a -> {
                        if (a.getQuantity().compareTo(BigDecimal.ZERO) <= 0) {
                            throw new ServiceException("submit", -666, "service异常!");
                        } else {
                            return a.getQuantity();
                        }
                    }).reduce(BigDecimal.ZERO, (a, b) -> a.add(b));

java8返回boolean
boolean hasEfficaciousStoreout =  list.stream()
                    .filter(a-> a.getFinishCommodityCount().compareTo(a.getCloseCommodityCount())!=0 )
                    .findAny()
                    .isPresent();
java8返回int
private Integer num
int qty = list.stream().collect(Collectors.summingInt(bean::getNum));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值