我有一个列表,我想在其中过滤元素并对每个元素应用方法,并将结果添加到另一个列表myFinalList
中.
有了Java8,我发现我可以用两种不同的方式来实现它.我想知道他们之间更有效的方式,并理解为什么一种方式比另一种更好.
我愿意接受任何关于第三条道路的建议.
方法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());