Java 8 - отфильтровать нулевое значение из потока

Java 8 - отфильтровать нулевое значение из потока

ПросмотритеStream, содержащий значенияnull.

Java8Examples.java

package com.example.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 language = Stream.of("java", "python", "node", null, "ruby", null, "php");

        List result = language.collect(Collectors.toList());

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

    }
}

выход

java
python
node
null   //
Solution
To solve it, uses Stream.filter(x -> x!=null)
Java8Examples.java

package com.example.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 language = Stream.of("java", "python", "node", null, "ruby", null, "php");

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

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

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


    }
}

выход

java
python
node
ruby
php

В качестве альтернативы можно использовать фильтрObjects::nonNull

import java.util.List;

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