java8 stream 使用示例


stream 使用示例

             

                

*************************

中间操作:peek、map比较

              

peek:无返回值

map:将流中元素转换为新的值返回

                 

public class StreamTest {

    public static void main(String[] args){
        List<String> list=new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");

        list.stream().peek(i->{
            System.out.println("peek中输出的值:"+i);
        }).forEach(i->{
            System.out.println("peek foreach中输出的值:"+i);
        });

        System.out.println("\n*****************************\n");

        list.stream().map(i->i+2).forEach(i->{
            System.out.println("map foreach中输出的值:"+i);
        });
    }
}

              

******************

控制台输出

               

peek中输出的值:1
peek foreach中输出的值:1
peek中输出的值:2
peek foreach中输出的值:2
peek中输出的值:3
peek foreach中输出的值:3

*****************************

map foreach中输出的值:12
map foreach中输出的值:22
map foreach中输出的值:32

               

                   

*************************

中间操作:map、flatMap比较

             

map:将流中元素转换为新的值返回

flatMap:将流中的每个元素都转换为流,最后将所有的流归并为一个流

                              

public class StreamTest2 {

    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("123");
        list.add("456");
        list.add("789");

        System.out.println("map操作输出:");
        List<Stream<String>> result = list.stream().map(i -> Stream.of(i.split(""))).collect(Collectors.toList());
        result.forEach(stream -> {
            stream.collect(Collectors.toList()).forEach(System.out::print);

            System.out.println();
        });

        System.out.println("\nflatMap操作输出:");
        List<String> result2 = list.stream().flatMap(i -> Stream.of(i.split(""))).collect(Collectors.toList());
        result2.forEach(System.out::print);
    }
}

                

******************

控制台输出

               

map操作输出:
123
456
789

flatMap操作输出:
123456789

                

                                              

*************************

String集合转换为Integer集合

               

public class StreamTest3 {

    public static void main(String[] args){
        List<String> list=new ArrayList<>();
        list.add("12");
        list.add("23");
        list.add("65");

        List<Integer> l=list.stream().map(Integer::valueOf).collect(Collectors.toList());
        l.forEach(System.out::println);
    }
}

               

******************

控制台输出

              

12
23
65

            

             

*************************

collect 分组操作

               

public class StreamTest4 {

    public static void main(String[] args){
        List<String> list=new ArrayList<>();
        list.add("12");
        list.add("8");
        list.add("6");
        list.add("6");
        list.add("9");
        list.add("29");
        list.add("23");
        list.add("36");
        list.add("38");
        list.add("89");

        Map<Boolean,List<Integer>> map= list.stream().map(Integer::valueOf).collect(Collectors.groupingBy(i->i>20));
        for(Boolean b: map.keySet()){
            System.out.println(b+"  "+map.get(b));
        }
    }
}

             

******************

控制台输出

                 

false  [12, 8, 6, 6, 9]
true  [29, 23, 36, 38, 89]

             

                 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值