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

Stream.max()如何处理相等性?,第1张

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

确实很难仅从文档中得出明确的声明。如果我们尝试从“减少”过程的一般描述和文档的类似提示中得出结论,总会觉得我们可能在做过多的解释。

然而,有一个关于这个问题的明确声明来自布赖恩戈茨谁是相当关于流API的权威:

如果流是有序的(例如从数组或List获得的流),则在有多个最大元素的情况下,它返回最大的 第一个 元素;否则,返回第 一个
元素。仅当流无序时才允许选择任意元素。

遗憾的是,这样的显式声明未在的文档中做出

Stream.max
,但至少符合我们对实现的经验和知识我们中的那些研究源代码的人。别忘了实际的考虑,因为
unordered().max(comparator)

如果
max
允许首先选择一个任意元素,那么很容易说出“先选择而不是先”而不是“先选择而不是先选” 。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5133067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存