У меня есть список myListToParse
, где я хочу отфильтровать элементы и применить метод для каждого элемента и добавить результат в другой список myFinalList
.
С Java 8 я заметил, что могу сделать это двумя разными способами. Я хотел бы узнать более эффективный путь между ними и понять, почему один способ лучше, чем другой.
Я открыт для любого предложения о третьем способе.
Способ 1:
myFinalList = new ArrayList<>();
myListToParse.stream()
.filter(elt -> elt != null)
.forEach(elt -> myFinalList.add(doSomething(elt)));
Способ 2:
myFinalList = myListToParse.stream()
.filter(elt -> elt != null)
.map(elt -> doSomething(elt))
.collect(Collectors.toList());