不必担心任何性能差异,在这种情况下,通常它们会很小。
方法2是可取的,因为
它不需要变异lambda表达式之外的集合,
它更具可读性,因为在收集管道中执行的不同步骤是顺序编写的:首先执行过滤操作,然后执行map操作,然后收集结果(有关收集管道的好处的更多信息,请参阅Martin Fowler的出色文章),
您可以通过替换
Collector
使用的值轻松更改收集值的方式。在某些情况下,您可能需要编写自己的Collector
,但是这样做的好处是您可以轻松地重用它。

不必担心任何性能差异,在这种情况下,通常它们会很小。
方法2是可取的,因为
它不需要变异lambda表达式之外的集合,
它更具可读性,因为在收集管道中执行的不同步骤是顺序编写的:首先执行过滤操作,然后执行map操作,然后收集结果(有关收集管道的好处的更多信息,请参阅Martin Fowler的出色文章),
您可以通过替换
Collector使用的值轻松更改收集值的方式。在某些情况下,您可能需要编写自己的
Collector,但是这样做的好处是您可以轻松地重用它。