gpt4 book ai didi

java - Stream.max() 如何处理相等性?

转载 作者:太空狗 更新时间:2023-10-29 22:57:21 24 4
gpt4 key购买 nike

虽然我怀疑答案是“未指定”...

如果 Stream 中有多个“最大/最低”元素,Comparator 将其传递给 maxmin方法认为相等(返回 0),是否在某处指定了将找到哪个元素?

最佳答案

确实很难仅从文档中得出明确的说法。如果我们试图从“Reduction”过程的一般描述和文档的类似提示中得出结论,我们总是会觉得我们可能做了太多的解释。

但是,有一个 explicit statement regarding this matter来自 Brian Goetz谁是关于 Stream API 的权威人士:

If the stream is ordered (such as the streams you get from an array or List), it returns the first element that is maximal in the event of multiple maximal elements; only if the stream is unordered is it allowed to pick an arbitrary element.

很遗憾,在Stream.max的文档中并没有做出这样明确的声明,但至少符合我们的实现经验和知识(those of us who looked at the source code) .不要忘记,实际的考虑,因为在当前情况下通过 unordered().max(comparator) 说“先选择而不是先”比说“先选择而不是先选择”更容易” 如果 max 首先被允许选择任意元素。

关于java - Stream.max() 如何处理相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36711845/

24 4 0