Java9StreamAPI增强

Java9StreamAPI增强 首页 / Java入门教程 / Java9StreamAPI增强

Java 9 改进的 Stream API 添加了一些便利的方法,使流处理更容易,并使用收集器编写复杂的查询。

Java 9 为 Stream 新增了几个方法:dropWhiletakeWhileofNullable,为 iterate 方法新增了一个重载方法。

takeWhile 语法

default Stream<T> takeWhile(Predicate<? super T> predicate)

takeWhile方法使用一个断言作为参数,返回给定 Stream 的子集直到断言语句第一次返回 false。如果第一个值不满足断言条件,将返回一个空的 Stream

import java.util.stream.Stream;

public class Tester {
   public static void main(String[] args) {
      Stream.of("a","b","c","","e","f").takeWhile(s->!s.isEmpty())
         .forEach(System.out::print);		 
   } 
}

takeWhile方法获取a,b和c的所有值,然后,一旦字符串为空,它将停止执行。

abc

dropWhile语法 

default Stream<T> dropWhile(Predicate<? super T> predicate)

dropWhile 方法和 takeWhile 作用相反的,使用一个断言作为参数,直到断言语句第一次返回 true 才返回给定 Stream 的子集。

import java.util.stream.Stream;

public class Tester {
   public static void main(String[] args) {
      Stream.of("a","b","c","","e","f").dropWhile(s-> !s.isEmpty())
         .forEach(System.out::print);
      
      System.out.println();
      Stream.of("a","b","c","","e","","f").dropWhile(s-> !s.isEmpty())
         .forEach(System.out::print);
   } 
}

dropWhile方法删除a,b和c值,然后,一旦字符串为空,它将获取所有值。

ef
ef

Iterate语法

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

iterate方法现在具有hasNext断言作为参数,一旦hasNext断言返回false,它就会停止循环。

import java.util.stream.IntStream;

public class Tester {
   public static void main(String[] args) {
      IntStream.iterate(3, x -> x < 10, x -> x+ 3).forEach(System.out::println);
   } 
}

输出

链接:https://www.learnfk.comhttps://www.learnfk.com/java/java9-stream-api-improvements.html

来源:LearnFk无涯教程网

3
6
9

ofNullable语法 

static <T> Stream<T> ofNullable(T t)

引入了ofNullable方法以防止NullPointerExceptions并避免对Stream进行空检查。 此方法返回一个包含单个元素的顺序Stream,否则返回一个空Stream

import java.util.stream.Stream;

public class Tester {
   public static void main(String[] args) {
      long count=Stream.ofNullable(100).count();
      System.out.println(count);
  
      count=Stream.ofNullable(null).count();
      System.out.println(count);
   } 
}

输出

链接:https://www.learnfk.comhttps://www.learnfk.com/java/java9-stream-api-improvements.html

来源:LearnFk无涯教程网

1
0

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

教程推荐

零基础GPT应用入门课 -〔林健(键盘)〕

现代React Web开发实战 -〔宋一玮〕

遗留系统现代化实战 -〔姚琪琳〕

玩转Vue 3全家桶 -〔大圣〕

DDD实战课 -〔欧创新〕

即时消息技术剖析与实战 -〔袁武林〕

玩转webpack -〔程柳锋〕

深入拆解Tomcat & Jetty -〔李号双〕

Python核心技术与实战 -〔景霄〕

好记忆不如烂笔头。留下您的足迹吧 :)