springjava.com
  • Core Java
  • Spring Core
  • Spring Boot
  • Spring MVC
  • Angular Tutorial

Related Posts

  • Java for each loop | Enhanced for loop How to iterate Map in Java How to iterate Set in Java How to iterate List in Java Java 9 Stream API Improvements Examples Factory method to create Immutable Collection in Java 9 Java 9 Diamond Operator With Example Java 9 @SafeVarargs Annotation Enhancement Use Java Try with Resources Create Private Methods in Java 9
Core Java

Java 9 Stream API Improvements Examples

Last Updated: 10-04-2023 Springjava

Stream API was introduced in Java 8. In Java 9 new four methods are added in Stream API.The new four methods are takeWhile(), dropWhile(), iterate(), and ofNullable().

Table of content

  1. Java 9 takeWhile() method
  2. Java 9 dropWhile() method
  3. Java 9 iterate() method
  4. Java 9 ofNullable() method
  5. Conclusion

1. Java 9 takeWhile() method

This is a default method added in Stream Interface in Java 9. This method accepts all the values until the predicate returns false. 

Syntax

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

Example 

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import java.util.stream.Collectors;

public class Test {
   public static void main(String[] args) {
      ArrayList<Integer> al= new ArrayList<Integer>();
      al.add(2);
      al.add(4);
      al.add(1);
      al.add(5);
      al.add(6);
      al.add(8);
      System.out.println("Initial List:"+al);
      List<Integer> l1= al.stream().filter(i->i%2==0).collect(Collectors.toList());
      System.out.println("After filter() List:"+l1);
      List<Integer> l2= al.stream().takeWhile(i->i%2==0).collect(Collectors.toList());
      System.out.println("After takeWhile() List:"+l2);
   } 
}

Output

Initial List:[2, 4, 1, 5, 6, 8]
After filter() List:[2, 4, 6, 8]
After takeWhile() List:[2, 4]

2. Java 9 dropWhile() method

This is a default method added in Stream Interface in Java 9. This method throws away all the values at the start until the predicate returns true.

Syntax

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

Example

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import java.util.stream.Collectors;

public class Test {
   public static void main(String[] args) {
      ArrayList<Integer> al= new ArrayList<Integer>();
      al.add(2);
      al.add(4);
      al.add(1);
      al.add(5);
      al.add(6);
      al.add(8);
      System.out.println("Initial List:"+al);
      List<Integer> l1= al.stream().filter(i->i%2==0).collect(Collectors.toList());
      System.out.println("After filter() List:"+l1);
      List<Integer> l2= al.stream().dropWhile(i->i%2==0).collect(Collectors.toList());
      System.out.println("After dropWhile() List:"+l2);
   } 
}

Output

Initial List:[2, 4, 1, 5, 6, 8]
After filter() List:[2, 4, 6, 8]
After dropWhile() List:[1, 5, 6, 8]

3. Java 9 iterate() method

This is a static method added in Stream Interface in Java 9. This method is also available with two arguments but from Java 9 onwards this method with three arguments is also available. It allows us to iterate stream elements till the specified condition.

Syntax

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

Example

import java.util.stream.Stream;  

public class Test{  
    public static void main(String[] args) {  
        Stream.iterate(1, i -> i <= 10, i -> i*4)  
        .forEach(System.out::println);  
    }  
}

Output

1
4

4. Java 9 ofNullable() method

This is also a static method added in Stream Interface in Java 9. This method is introduced to prevent NullPointerExceptions and to avoid null checks for streams. It returns a sequential Stream containing a single element, if non-null, otherwise returns an empty Stream.

Syntax

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

Example 

import java.util.stream.Stream;

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

Output

1
0

5. Conclusion

In this topic, we learned about Stream API enhancement in Java 9.

What is a Java Bean Class? Java 8 Features Write Less Lines Of Code Lambda Expression In Java 8 Features

Leave your thought here

Your email address will not be published. Required fields are marked *

springjava_com
  • springjavateam@gmail.com
  • springjava.com
Learn
    • Core Java
    • Spring Core
    • Spring Boot
    • Spring MVC
    • Angular Tutorial
Quick links
  • About Us
  • Contact Us
  • Privacy Policy
Subscribe to Blog via Email
Subscribe
© 2021 Spring Java. All Rights Reserved.
springjava.com
  • Core Java
  • Spring Core
  • Spring Boot
  • Spring MVC
  • Angular Tutorial
  • About Us
  • Contact Us