Java 8 – Filter a null value from a Stream

Review a Stream containing null values.

Java8Examples.java

package com.mkyong.java8;

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

public class Java8Examples {

    public static void main(String[] args) {

        Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php");

        List<String> result = language.collect(Collectors.toList());

        result.forEach(System.out::println);

    }
}

output

java
python
node
null   // <--- NULL
ruby
null   // <--- NULL
php

Solution

To solve it, uses Stream.filter(x -> x!=null)

Java8Examples.java

package com.mkyong.java8;

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

public class Java8Examples {

    public static void main(String[] args) {

        Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php");

        //List<String> result = language.collect(Collectors.toList());

        List<String> result = language.filter(x -> x!=null).collect(Collectors.toList());

        result.forEach(System.out::println);


    }
}

output

java
python
node
ruby
php

Alternatively, filter with Objects::nonNull


import java.util.List;

	List<String> result = language.filter(Objects::nonNull).collect(Collectors.toList());

References

  1. Objects::nonNull JavaDoc
  2. Java 8 Streams filter examples
  3. Java 8 Collectors JavaDoc

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

Leave a Reply

avatar