Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Filter Null items in Stream

When using a Java Stream, sometimes null values can occur after mapping. Currently when these values need to be omitted, I use:

.stream()
.<other operations...>
.filter(element -> element != null)
.<other operations...>

For a more functional style a tiny helper method is quickly written:

public static <T> boolean nonNull(T entity) {
    return entity != null;
}

So that you can use a method reference instead:

.stream()
.<other operations...>
.filter(Elements::nonNull)
.<other operations...>

I could not find such a jdk method, even though I would suspect they have included one. Is there a different approach here? Or did they omit this for a reason?

like image 843
Boris van Katwijk Avatar asked Mar 02 '16 07:03

Boris van Katwijk


People also ask

Does stream check for null?

stream()). orElseGet(Stream::empty) returns the fallback value in the event that the Optional object is empty, i.e the passed-in collection is null.

Will stream collect return null?

So as long as you don't do weird things like combine function return null , the Collector always return at least a mutable container using your provided supplier function.

How do I filter null values in Splunk?

use |where isnull(Device) to get all events where Device is null and |where isnotnull(Device) or |search Device=* / index=A Device=* to get all events where Device is not null.


1 Answers

You can use Objects::nonNull from the Java8 SDK:

.stream()
.<other operations...>
.filter(Objects::nonNull)
.<other operations...>
like image 65
Mateusz Dymczyk Avatar answered Sep 18 '22 05:09

Mateusz Dymczyk