Java8 Stream学习

#Stream练习 当你使用Stream时,你会通过三个阶段来建立一个操作流水线。

  1. 创建一个Stream
  2. 在一个或多个步骤中,指定将初始化Stream转换为另一个Stream的中间操作。
  3. 使用一个终止操作来产生一个结果。该操作会强制它之前的延迟操作立即执行。在这之后,该Stream就不会再被使用了。 如示例中,通过Stream或者parallelStream方法来创建Stream,再通过filter方法对其进行转换,而count就是终止操作。

示例:long count = words.parallelStream().filter(w -> w.length()>12).count();

创建Stream

通过Java8在Collection接口中新添加的stream方法,可以将任何集合转化为一个Stream。 如Stream<String > song = Stream.of("gently", "down", "the", "stream");

filter、map和flatMap方法

流转化是指从一个流中读取数据,并将转换后的数据写入到另一个流中。 Stream<String> lowcaseWords = words.stream().map(String::toLowerCase);

提取子流和组合流

Stream.limit(n)会返回一个包含n个元素的新流,用于裁剪指定长度的流。 Stream.skip(n)正好相反,会丢弃掉前面的n个元素。 可以用Stream类的concat将两个流连接到一起。

有状态的转换

如distinct方法,Sorted方法。

简单的聚合方法

聚合方法都是终止操作。 count方法,max和min方法。anyMatch方法,allMatch方法和noneMatch方法。

Optional类型

高效使用Optional的关键在于,使用一个或者接受正确值、或者返回另一个替代值得方法。 当一个可选值存在时应该如何对它进行优雅的进行处理。 当没有值存在时,产生一个替代值。 int aInt = a.orElse(8);

创建可选值

Optional.of()或者Optional.empty()来创建一个Optional对象。 public static Optional<Double> inverse(Double x){ return x == 0 ? Optional.empty() : Optional.of(1/x); }

使用flatMap来组合可选值函数

转载于:https://my.oschina.net/u/3498797/blog/2874319

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值