Java 9:流API的增强

Java9引入了Stream接口的四种新方法:dropWhile、takeWhile、ofNullable和迭代。dropWhile和takeWhile方法分别用于根据Predicate条件跳过或选择元素,ofNullable用于处理可能为null的元素,而迭代方法则允许使用for循环语法创建流。

Java 9向Stream接口添加了4种新方法:

1. dropWhile

dropWhile方法类似于skip方法,但使用Predicate而不是固定的整数值。 当Predicate为true时,它将从输入流中删除元素。 然后将所有剩余的元素传递到输出流。 例如:

IntStream.range(0, 10)
         .dropWhile(i -> i < 5)
         .forEach(System.out::println);
// prints 5, 6, 7, 8, 9

2.服用时

takeWhile方法类似于limit方法。 它在Predicate为true时从输入流中获取元素并将其传递到输出流。 例如:

IntStream.range(0, 10)
         .takeWhile(i -> i < 5)
         .forEach(System.out::println);
// prints 0, 1, 2, 3, 4

注意:使用时要小心 当您有一个无序的流时,dropWhile和takeWhile ,因为您可能会在输出流中获得一些takeWhile元素。

3. ofNullable

ofNullable方法如果元素为null,则返回空流,如果非null,则返回单元素流。 这样就无需在构造流之前进行空检查。

Stream.ofNullable(null).count();  // prints 0
Stream.ofNullable("foo").count(); // prints 1

4.迭代

Java 9中已重载了静态iterate方法,以允许您使用for循环语法创建流。 例如:

Stream.iterate(0, i -> i < 10, i -> i + 1)
      .forEach(System.out::println); //prints from 0 to 9

翻译自: https://www.javacodegeeks.com/2017/12/java-9-enhancements-stream-api.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值