Java 8 Filter a null value from a Stream
By:Roy.LiuLast updated:2019-08-17
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
From:一号门
Previous:Java 8 Convert a Stream to List

COMMENTS