Review a Stream containing null values.
Java8Examples.java
package com.favtuts.java8.stream;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamFilterNullValues {
public static void main(String[] args) {
Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php");
//Contains null values
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.favtuts.java8.stream;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamFilterNullValues {
public static void main(String[] args) {
Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php");
// Filter to remove null values with Lambda predicate
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());
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-basic/java8