stream流的简单使用

stream流的简单使用

  List<Integer> list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(4);
        list.add(4);
        list.add(3);
        list.add(5);
        //只取前3条数据
        Stream limit = list.stream().limit(3);
        Iterator iterator = limit.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        //排序,默认的排序
        Stream sorted = list.stream().sorted();
        Iterator iterator1 = sorted.iterator();
        while (iterator1.hasNext()) {
            System.out.println("iterator1=====" + iterator1.next());
        }
        //删除前三个skip(3)
        Stream skip = list.stream().skip(3);
        Iterator iterator2 = skip.iterator();
        while (iterator2.hasNext()) {
            System.out.println("iterator2=====" + iterator2.next());
        }
        //获取list长度
        System.out.println("count=" + list.stream().count());

        //去除重复的
        Stream distinct = list.stream().distinct();
        Iterator iterator3 = distinct.iterator();
        while (iterator3.hasNext()) {
            System.out.println("iterator3=====" + iterator3.next());
        }

        //获取到流进行过滤出二的倍数,并放入到一个数组中
        List<Integer> newList2 = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());
        System.out.println(newList2);

计算总和

 List<ExcelS> list = new ArrayList();
        list.add(new ExcelS(new BigDecimal(12),1));
        list.add(new ExcelS(new BigDecimal(12),1));
        list.add(new ExcelS(new BigDecimal(12),1));
        list.add(new ExcelS(new BigDecimal(12),1));
        list.add(new ExcelS(new BigDecimal(12),2));
        //计算总价格
        BigDecimal reduce = list.stream().map(x-> x.getPrice().multiply(new BigDecimal(x.getNum()))).reduce(BigDecimal.ZERO,BigDecimal::add);
        System.out.println("总价格-------》"+reduce);

计算一个List对象中某个字段总和

int total = inoutRecordList.stream().mapToInt(TbGoodsInoutRecord::getNum).sum();

自证

1.reduce  进行归约操作,例如求和等
 2.forEach  对流中每个数据都执行传入的方法
 3.anyMatch  至少一个匹配,返回boolean
 4.allMatch  匹配所有,返回boolean
 5.collect  可以传入集合中的常用方法,例如:Collector.toList()将流转回集合,Collector.groupingBy()将流中数据分组

效果

在这里插入图片描述

string数组转long数组

Long[] longIds = Arrays.stream(ids).map(str -> Long.parseLong(str.trim())).toArray(Long[]::new);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值