Stream 示例

创建一个无限大小的Stream

Stream s = Stream.generate(()->1);
//测试循环10次
 s.peek(System.out::println).limit(10).collect(Collectors.toList());

创建一个1到100的数字,然后求和

        IntStream s = IntStream.iterate(1,t->t+1).limit(100);
        //s = IntStream.range(1,100)
        System.out.println(s.sum());

分组

类如下:

static class Stu {

        public static Stu get(String name, String sex, String clas) {
            Stu s = new Stu();
            s.name = name;
            s.sex = sex;
            s.clas = clas;
            return s;
        }

        public String name;

        public String sex;

        public String clas;

        public String getName() {
            return name;
        }

        public String getClas() {
            return clas;

        }

        public String getSex() {
            return sex;

        }
    }

测试类 按clas分组

        Stu s1 = Stu.get("a1","F","A");
        Stu s2 = Stu.get("a2","M","A");
        Stu s3 = Stu.get("a3","F","B");
        Stu s4 = Stu.get("a4","M","B");

        System.out.println(Stream.of(s1,s2,s3,s4).collect(Collectors.groupingBy(Stu::getClas)));

按clas,sex分组

Stream.of(s1,s2,s3,s4).collect(Collectors.groupingBy(Stu::getClas,Collectors.groupingBy(Stu::getSex)))

分区

按是与否分2个区,

Stream.of(s1,s2,s3,s4).collect(Collectors.partitioningBy(t->StringUtils.equals(t.sex,"F")))

运行后结果:

{false=[spring.B$Stu@246b179d, spring.B$Stu@7a07c5b4], true=[spring.B$Stu@26a1ab54, spring.B$Stu@3d646c37]}

将Stu对象的name组成一个字符串,用:分隔

Stream.of(s1,s2,s3,s4).map(Stu::getName).collect(Collectors.joining(":"))

转载于:https://my.oschina.net/u/3217171/blog/3056888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值