gpt4 book ai didi

api - Java中stream.max(Comparator)和stream.collect(Collectors.maxBy(Comparator)的区别

转载 作者:行者123 更新时间:2023-12-01 08:46:19 26 4
gpt4 key购买 nike

在 Java Streams 中 - stream.max(Comparator) 之间的区别是什么?和 stream.collect(Collectors.maxBy(Comparator))在性能方面。两者都将根据传递的比较器获取最大值。如果是这种情况,为什么我们需要使用 collect 方法进行收集的额外步骤?我们什么时候应该选择前者和后者?适契约(Contract)时使用两者的用例场景是什么?

最佳答案

他们做同样的事情,共享同样的代码。

why do we need the additional step of collecting using the collect method?



你没有。使用 max()如果这就是你想要做的。但在某些情况下,收集器可以派上用场。例如:
Optional<Foo> result = stream.collect(createCollector());

哪里 createCollector()将根据某些条件返回一个收集器,可能是 maxBy、minBy 或其他条件。

通常,您不应该太在意执行相同操作的两种方法之间可能存在的微小性能差异,并且很有可能以相同的方式实现。相反,您应该使您的代码尽可能清晰易读。

关于api - Java中stream.max(Comparator)和stream.collect(Collectors.maxBy(Comparator)的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com