В этом уроке мы увидим, как фильтровать нулевые значения из потока в Java .
Пример: поток с нулевыми значениями
В этом примере у нас есть поток с нулевыми значениями. Давайте посмотрим, что происходит, когда мы не фильтруем нулевые значения.
import java.util.Arrays; import java.util.List; импорт java.util.stream.Collectors; public class Example {public static void main (String [] args) { List <String> list = Arrays.asList («Java», «Stream», null, «Filter», null); List <String> result = list.stream (). Collect (Collectors.toList ()); result.forEach (System.out :: Println); } }
Выход:
Джава Поток ноль Фильтр ноль
Как вы можете видеть, что нулевые значения присутствуют в выходных данных.
Пример Java 8: фильтрация нулевых значений из потока
Мы можем использовать лямбда-выражение str -> str! = Null в потоке filter (), чтобы отфильтровать нулевые значения из потока.
import java.util.Arrays; import java.util.List; импорт java.util.stream.Collectors; public class Example {public static void main (String [] args) { List <String> list = Arrays.asList («Java», «Stream», null, «Filter», null); List <String> result = list.stream () .filter (str -> str! = null) .collect (Collectors.toList ()); result.forEach (System.out :: Println); } }
Выход:
Джава Поток Фильтр
В качестве альтернативы вы можете использовать ссылку на метод Objects :: nonNull в методе filter (), чтобы отфильтровать нулевые значения следующим образом:
List <String> result = list.stream () .filter (объекты :: ненулевой) .collect (Collectors.toList ());
Java 8 Пример 2: фильтр нулевых значений после промежуточной операции сопоставления
Точно так же мы можем фильтровать нулевые значения после операции отображения в потоке.
import java.util.Arrays; import java.util.List; импорт java.util.stream.Collectors; public class Example {public static void main (String [] args) { List <Integer> list = Arrays.asList (1, 2, 3, ноль, 4, ноль, 5); List <Integer> result = list.stream () .map (num -> num) // здесь у вас будет другая логика .filter (n -> n! = null) .collect (Collectors.toList ()); result.forEach (System.out :: Println); } }
Выход:
1 2 3 4 5
Оставить комментарий