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