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

Радость потоков

Использование потоков Java 8 для простой обработки коллекции. Помеченный как java, потоки, кодирование, программирование.

Недавно я написал класс, который выглядел примерно так:

public class Requirement { ...
    public Requirement(...) { ...
    }
    public When getWhen() { ...
    }
    public Event getEvent() {...
    }
    public SystemReaction getSystemReaction() {...
    }
}

У меня был список экземпляров Requirement . Теперь мне нужен был набор экземпляров Event , на которые ссылался хотя бы один Требование . Экземпляр Event также может быть null .

В Java до Java 8 я бы сделал следующее: a) Создайте пустой Хэш-набор b) Выполните итерацию по списку Требований экземпляров c) Для каждого экземпляра Requirement проверьте, возвращает ли getEvent() значение null d) Если он не возвращает null , добавьте событие в HashSet

Начиная с Java 8, вы можете использовать потоки для выполнения этой задачи в однострочном:

Set events = requirements.stream().map(req -> req.getEvent())
  .filter(event -> event != null).collect(Collectors.toSet());

Чтобы узнать больше о потоках, ознакомьтесь с этим руководством .

Оригинал: “https://dev.to/bertilmuth/the-joy-of-streams-2p0o”