stream流的一些操作

@Test
    public void test7() {
        List<String> stringList = Stream.concat(Arrays.asList("a", "b", "c").stream(), Arrays.asList("e", "d", "a", "x", "h", "l", "j", "g").stream())
                //去重
                .distinct()
                //过滤
                .filter(i -> i != "c")
                //将元素进行映射转换
                .map(String::toUpperCase)
                //将每一个元素映射成一个流,做完操作再把每个流连接成一个流
                .flatMap(i -> Stream.of(i + "1"))
                //生成一个相同的Stream,并提供一个消费函数,当新Stream中的元素被消费(执行操作)时,该消费函数会在此之前先执行
                .peek(i -> System.out.println("i==" + i + 1))
                //跳过前N个元素,取剩余元素,没有则为空
                .skip(1)
                //排序
                .sorted()
                //返回前N个元素
                .limit(7)
                //收集方法,把流转换为集合和聚合元素
                .collect(Collectors.toList());
        //输出
        stringList.forEach(System.out::println);
        stringList.stream().forEach(System.out::println);
        //返回最大的Optional对象
        Optional<String> maxStringOptional = stringList.stream().max(Comparator.comparing(c -> c));
        String max = maxStringOptional.get();
        System.out.println("max = " + max);
        //反会最小的Optional对象
        Optional<String> minStringOptional = stringList.stream().min(Comparator.comparing(c -> c));
        String min = minStringOptional.get();
        System.out.println("min = " + min);
        
        //根据指定规则从流中生成一个指定的值
        Optional<String> reduce = stringList.stream().reduce(String::join);
        System.out.println("reduce.get() = " + reduce.get());
        
        //所有元素都满足指定条件则返回true 否则返回false
        boolean b = stringList.stream().allMatch(i -> i == "B1");
        System.out.println("所有元素都满足条件? b = " + b);//false
        
        //所有元素都不满足指定条件则返回true 否则返回false
        boolean b2 = stringList.stream().noneMatch(i -> i == "Z1");
        System.out.println("所有元素都不满足条件? b2 = " + b2);//true
        
        //至少有一个元素满足指定条件则返回true 否则返回false
        boolean b3 = stringList.stream().peek(System.out::println).anyMatch(i -> i == "B1");
        System.out.println("至少有一个元素满足条件? b3 = " + b3);//没搞懂 与预计结果不符
        
        //获取第一个元素
        Optional<String> first = stringList.stream().findFirst();
        String firstString = first.get();
        System.out.println("获取第一个元素 = " + firstString);
        
        //通过summaryStatistics方法统计stream的信息
        List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
        LongSummaryStatistics longSummaryStatistics = integerList.stream().mapToLong((i) -> i).summaryStatistics();
        System.out.println("平均值" + longSummaryStatistics.getAverage());
        System.out.println("个数" + longSummaryStatistics.getCount());
        System.out.println("最大值" + longSummaryStatistics.getMax());
        System.out.println("最小值" + longSummaryStatistics.getMin());
        System.out.println("和" + longSummaryStatistics.getSum());
        
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
团队液体查看器(叉) 这是原始Team Liquid Streams扩展的分支,因为旧的开发人员没有维护/改进现有的扩展。 请在下面的评论部分或以下主题的线程中提出功能请求:http://www.teamliquid.net/forum/viewmessage.php?topic_id=205002 Team Liquid Streams提供了一种在TeamLiquid上观看与Starcraft相关的的简便方法.net它会保持最新列表,列出当前正在媒体的人以及正在观看该媒体的观众人数。 您还可以收藏要在每次再次开始广播时引起弹出式通知的光。 您可以按收藏夹,视频名称,是否推荐,视频类型,种族和观众数进行排序。 现在,该扩展名还按用户名而不是所有者列出,与TeamLiquid.net上的外观匹配。此外,现在还有一个选项屏幕,用于手动编辑您的收藏夹和隐藏列。 更新:现在启用了类型过滤。0.0.2.0版:现在启用了竞赛过滤。0.0.2.5版:添加了一次手动刷新。 刷新是每10分钟一次,此外每10分钟会发生一次自动刷新。 0.0.2.6版:修复了没有种族选择的不会显示的错误。 0.0.2.7版:修复了导致隐藏列时列无法正确移动的错误。 -由Bone_Idle版本0.0.2.8报告:修复了由于标签更改而导致“杂项”不再显示的错误。版本0.0.2.9:添加了“语言等级”列。 默认情况下不显示,并显示所有三种评级类型。 0.0.3.0版:已更新以添加新类型(Dota2和LoL)。 选项页面应该可以再次正常工作。 0.0.3.1版:在选择过滤类型时,类型选择下拉列表保存用于节制的过滤器选择。0.0.3.4版:D3更新0.0.4.0版:HotS和WoL更新用户请求的通知警报现在在选项菜单0.0.4.1版中切换: HotS和WoL的更新-> SC2 Chrome版本0.0.5.0的更新清单版本:输入EoL,因为我目前没有时间维护此版本,并且Google的新Chrome req需要大量重写。 支持语言:English

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值