Stream流

Stream流

        Stream流思想
            1.获取流对象
            2.中间方法
            3.终结方法
    1.获取Stream流对象
        集合:使用Collection接口中的默认方法
            default Stream<E> stream()

         数组:使用Arrays数组工具类中的静态方法
            static<T>Stream<T>stream(T[] array)

         零散数据:使用Stream类中的静态方法
            static<T>Stream<T> of(T... values)
public class StreamDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        Collections.addAll(list,"张无忌","张良","王二麻子","谢广坤",
                "张三丰","张翠山");

        //过滤到新的集合
        list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(s-> System.out.println(s));
        System.out.println("-------------");
        /*
        Stream流思想
            1.获取流对象
            2.中间方法
            3.终结方法
         */

        /*
        1.获取Stream流对象
            集合:使用Collection接口中的默认方法
                default Stream<E> stream()

             数组:使用Arrays数组工具类中的静态方法
                static<T>Stream<T>stream(T[] array)

             零散数据:使用Stream类中的静态方法
                static<T>Stream<T> of(T... values)

         */
        Set<String> set = new HashSet<>();
        Collections.addAll(set,"张无忌","张良","王二麻子","谢广坤",
                "张三丰","张翠山");
        set.stream().forEach(s -> System.out.println(s));
        System.out.println("-------------");
        //双列集合 间接获取流 用entrySet拿到所有的键值对对象

        Map<String,Integer> map = new HashMap();
        map.put("张无忌",11);
        map.put("张良",22);
        map.put("王二麻子",33);
        map.put("谢广坤",44);
        map.put("张三丰",55);
        map.put("张翠山",66);
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        entrySet.stream().forEach(s-> System.out.println(s));
        System.out.println("-------------");
        //数组
        int[] arr1 = {11,22,33,44,55};
        double[] arr2 = {11.1,22.2,33.3,44,55};
        Arrays.stream(arr1).forEach(s-> System.out.println(s));
        Arrays.stream(arr2).forEach(s-> System.out.println(s));
        System.out.println("-------------");
        //零散数据
        Stream.of(1,2,3,4,5,6).forEach(s-> System.out.println(s));

下面展示一些 输出结果

张无忌
张三丰
张翠山
张良=22
张翠山=66
王二麻子=33
张三丰=55
张无忌=11
谢广坤=44

在这里插入图片描述

        //2.中间方法
        //filter 对流中的数据进行过滤,上面演示过了
        //limit 获取前几个对象
        System.out.println("-------------");
        list.stream().limit(3).forEach(s-> System.out.println(s));

        //skip 跳过前几个对象
        System.out.println("-------------");
        list.stream().skip(3).forEach(s-> System.out.println(s));


        //concat 合并两个流为一个流
        System.out.println("-------------");
        Stream<String> stream1 = list.stream().skip(3);
        Stream<String> stream2 = list.stream().limit(3);
        Stream.concat(stream1,stream2).forEach(s-> System.out.println(s));

        //distinct 去除流中重复的元素依赖
        System.out.println("-------------");
        list.stream().distinct().forEach(s-> System.out.println(s));

下面展示一些 输出结果

谢广坤
张三丰
张翠山
张无忌
张良
王二麻子
-------------
张无忌
张良
王二麻子
谢广坤
张三丰
张翠山

在这里插入图片描述
在这里插入图片描述

        //流终结操作方法
        //count 返回流中的元素数
        System.out.println("-------------");
        long count = list.stream().count();
        System.out.println(count);

下面展示 输出结果

6

Stream收集操作

把Stream流操作后的结果数据转回到集合
在这里插入图片描述
下面展示一些 代码片

        //Stream收集操作 把Stream流操作后的结果数据转回到集合
        System.out.println("-------------");
        List<Integer> collect = Stream.of(1, 2, 3, 4, 5, 6).filter(s -> s % 2 == 0).collect(Collectors.toList());
        System.out.println(collect);

输出结果:

[2, 4, 6]
  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值