Stream流(学生随便写的笔记)

  1. Stream流概述
  1. Stream流的获取
  1. Stream流常用API
  1. 收集Stream流

//第一块内容:Stream流的概述

Stream流核心思想
1.先得到集合或者数组的Stream流
2.把元素放上去
3.然后用Stream流简化API来方便操作元素

利用Stream流求一个字符串集合中的姓都相同,且全名长度为2(简单案例主要用于熟悉

Stream的作用)

 List <String>list=new ArrayList<>();

       Collections.addAll(list,"高世", "额" ,"高豪","高世豪","呃呃");

        System.out.println(list);

        
//由于长度有限,下面两行代码看成一行,代表的是将list集合中姓为高并且名称长度为2的集合打印出来
list.stream().filter(s -> s.startsWith("高")).filter(s -> s.length()==2).forEach(s -> System.out.println(s));

//第二块内容:Stream流的获取

获取Collection集合流和Map集合流以及数组集合流(右边输入流然后(回车+ALT)+第一个内容,即可快捷生成避免出错)

//Collection集合获取流

        Collection<String>collection=new ArrayList<>();

        Stream<String> CollectionStream = collection.stream();

        //Map集合获取流

        Map<String,Integer>map=new HashMap<>();

        //key流

        Stream<String> keyStream = map.keySet().stream();

        //value流

        Stream<Integer> valueStream = map.values().stream();

        //keyAndValue对流(整体流)

        Stream<Map.Entry<String, Integer>> KeyAndValueStream = map.entrySet().stream();


        //数组集合获取流

        String[]name={"世","高","豪",};
        Stream<String> nameStream = Arrays.stream(name);//方式1

        Stream<String> name1 = Stream.of(name);//方式2

//第三块内容:Stream流常用API,以下是部分代码使用方法

/*Stream流常用API
* forEach:逐一处理(遍历)
* count:统计个数(用Long接取)
* filter:过滤元素
* limit:取前几个元素
* skip:跳过前几个
* map:加工方法
* concat:合并流
*distinct:去除重复流
* */
 /*Stream流常用API
        * forEach:逐一处理(遍历)
        * count:统计个数(用Long接取)
        * filter:过滤元素
        * limit:取前几个元素
        * skip:跳过前几个
        * map:加工方法
        * concat:合并流
        *distinct:去除重复流
        * */

        List<String>list=new ArrayList<>();

        Collections.addAll(list,"高世", "额" ,"高豪","高世豪","呃呃");

        list.stream().filter(s -> s.startsWith("高")).forEach(s -> System.out.println(s));//代表首字母为""中内容的流
        System.out.println("-----------------------");
        long count = list.stream().filter(s -> s.length() == 3).count(); System.out.println(count);//含义为长度为3的流字符有几个
        System.out.println("-----------------------");
        list.stream().filter(s -> s.startsWith("高")).limit(2).forEach(s -> System.out.println(s));//求性别为高的前两个字符输出
        System.out.println("-----------------------");
        list.stream().filter(s -> s.startsWith("高")).limit(2).forEach( System.out::println);//这行代码等价于上一行代码,其原理是Lambda简化机制
        System.out.println("-----------------------");
        list.stream().filter(s -> s.startsWith("高")).skip(1).forEach(System.out::println);//filter筛选后剩下元素跳过skip中数字个数打印出
        System.out.println("-----------------------");
        list.stream().map(s -> "LOL"+s).forEach(System.out::println);//map加工方法

        //合并流
        Stream<String> stringStream1 = list.stream().filter(s -> s.length() == 2);//长度为2的所有字符

        Stream<String> stringStream2 = Stream.of("java", "Spring");//加入括号内的字符

        Stream<String> stringStream1AndStringStream2=Stream.concat(stringStream1,stringStream2);
        stringStream1AndStringStream2.distinct().forEach(System.out::println);//输出合并流内容

        //!!!!!!!!!!!!!!distinct()可用于去除重复的流

//第四块内容:收集Stream流

Stream流的收集是将Stream流得到的内容转为集合or数组 

List<String>list=new ArrayList<>();
        Collections.addAll(list,"高世", "额" ,"高豪","高世豪","呃呃");

        Stream<String> str = list.stream().filter(s -> s.startsWith("高"));//姓为高的流

        List<String> collect = str.collect(Collectors.toList());//Collectors.toList()表示转为list集合调用的API
        System.out.println(collect);

        System.out.println("-------------------------------");
        Stream<String> newStr = list.stream().filter(s -> s.startsWith("高"));//姓为高的流
        Object[] objects = newStr.toArray();//由于泛型对流的内容无影响,所以用Object来接受数据
        System.out.println("数组"+Arrays.toString(objects));

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值