• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java8新特性
    Java9新特性

    Java9改進的Stream API

     

     

    Java 9 改進的 Stream API 添加了一些便利的方法,使流處理更容易,并使用收集器編寫復雜的查詢。

     

    Java 9 為 Stream 新增了幾個方法:dropWhile、takeWhile、ofNullable,為 iterate 方法新增了一個重載方法。

     

     

    takeWhile 方法

     

    語法

     

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

     

    takeWhile() 方法使用一個斷言作為參數,返回給定 Stream 的子集直到斷言語句第一次返回 false。如果第一個值不滿足斷言條件,將返回一個空的 Stream。

     

    takeWhile() 方法在有序的 Stream 中,takeWhile 返回從開頭開始的盡量多的元素;在無序的 Stream 中,takeWhile 返回從開頭開始的符合 Predicate 要求的元素的子集。

     

    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 方法在碰到空字符串時停止循環輸出,執行輸出結果為:

     

    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);
       } 
    }

     

    以上實例 dropWhile 方法在碰到空字符串時開始循環輸出,執行輸出結果為:

     

    ef

     

     

    iterate 方法

     

    語法

     

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

     

    方法允許使用初始種子值創建順序(可能是無限)流,并迭代應用指定的下一個方法。 當指定的 hasNext 的 predicate 返回 false 時,迭代停止。

     

    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);
       } 
    }

     

    執行輸出結果為:

     

    3
    6
    9

     

     

    ofNullable 方法

     

    語法

     

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

     

    ofNullable 方法可以預防 NullPointerExceptions 異常, 可以通過檢查流來避免 null 值。

     

    如果指定元素為非 null,則獲取一個元素并生成單個元素流,元素為 null 則返回一個空流。

     

    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);
       } 
    }

     

    執行輸出結果為:

     

    1
    0

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏