我想知道两个平面映射案例之间是否有显着差异。
案例1:
someCollection
.stream()
.map(CollectionElement::getAnotherCollection)
.flatMap(Collection::stream);
案例2:
someCollection
.stream()
.flatMap(element -> element.getAnotherCollection().stream());
应该首选哪个?这些在性能方面是否更好?
答案 0 :(得分:5)
应该首选哪个?
差异如此之大,取决于您和您的团队-选择您觉得更舒适的那一个。我会选择第二种方法,它更简洁。
这些在性能方面是否更好?
从时间复杂度的角度来看,没有。第一个示例涉及创建一些不必要的对象,因此第二个示例是更合理的选择。 但是,请记住,我们在这里谈论的是微优化。