在map()。flatMap()上使用单个flatMap()更好吗?

时间:2018-07-30 19:51:10

标签: java java-stream flatmap

我想知道两个平面映射案例之间是否有显着差异。

案例1:

someCollection
    .stream()
    .map(CollectionElement::getAnotherCollection)
    .flatMap(Collection::stream);

案例2:

someCollection
    .stream()
    .flatMap(element -> element.getAnotherCollection().stream());

应该首选哪个?这些在性能方面是否更好?

1 个答案:

答案 0 :(得分:5)

  

应该首选哪个?

差异如此之大,取决于您和您的团队-选择您觉得更舒适的那一个。我会选择第二种方法,它更简洁。

  

这些在性能方面是否更好?

从时间复杂度的角度来看,没有。第一个示例涉及创建一些不必要的对象,因此第二个示例是更合理的选择。 但是,请记住,我们在这里谈论的是微优化。