在map()上使用单个flatMap()是否更好?flatMap()?

Fos*_*san 2 java java-stream flatmap

我想知道两种平面图之间是否存在任何显着差异.

情况1:

someCollection
    .stream()
    .map(CollectionElement::getAnotherCollection)
    .flatMap(Collection::stream);
Run Code Online (Sandbox Code Playgroud)

案例2:

someCollection
    .stream()
    .flatMap(element -> element.getAnotherCollection().stream());
Run Code Online (Sandbox Code Playgroud)

应该首选哪一个?在性能方面有哪些更好?

Grz*_*rek 5

应该首选哪一个?

不同之处在于它取决于您和您的团队 - 选择您感觉更舒服的那个.我会选择第二种选择,它更简洁.

在性能方面有哪些更好?

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