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());