Рубрики
Без рубрики

Фильтровать нулевые значения из списка с помощью Java 8 Lambda

Удалите нулевые значения из коллекции, например, списка массивов или набора с помощью Java-лямбды. Помеченный как java, функциональный, java 8.

Обычная задача с потоками Java состоит в том, чтобы очистить входные данные, чтобы последующие шаги могли работать, не слишком задумываясь. Вероятно, наиболее распространенным шагом очистки № 1 является удаление нулей из коллекции.

Потоки облегчают это:

myCollection.stream()
  .filter(Objects::nonNull)
  .do.what.you.need

Сравните с классическими подходами:

while(myCollection.remove(null));
// do what you need, but you better not need that original list, because it's gone...
myCollection.removeAll(Collections.singleton(null));
// do what you need, but you better not need that original list, because it's gone...

Как и потоковый подход, они короткие и приятные, но, в отличие от потокового подхода, они изменяют исходный список. Первый пример также довольно медленный.

Мне нравится потоковый подход, потому что я могу связать дополнительные задачи после задачи фильтрации, включая карту . сортированный , уменьшить и многое другое!. Я нахожу, что традиционный императивный итеративный подход не только более многословен, но и концептуально сложнее следовать.

Оригинал: “https://dev.to/monknomo/filter-null-values-from-a-list-with-java8-lambda-351h”