当前位置: 首页 > 面试题库 >

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

史钊
2023-03-14
问题内容

尽管我怀疑答案是“未指定” …

如果有多个“最大/最低”的元素Stream,其中Comparator传递到最大或最小的方法认为等于(返回0),它是指定的某处哪些元素将被发现的?


问题答案:

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

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

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

遗憾的是,这样的显式声明未在的文档中做出Stream.max,但至少符合我们对实现的经验和知识我们中的那些研究源代码的人。别忘了实际的考虑,因为unordered().max(comparator)
如果max允许首先选择一个任意元素,那么很容易说出“先选择而不是先”而不是“先选择而不是先选” 。



 类似资料:
  • 虽然我怀疑答案是“没有具体说明”... 如果中有多个“最大/最低”元素,传递给max或min方法的认为这些元素相等(返回),是否指定了将找到哪个元素?

  • 问题内容: 我的许多node.js进程都因ECONNRESET错误而崩溃。这是我可以看到的输出: 有人知道如何处理吗?这不是一个非常有用的堆栈跟踪,所以我不知道它在哪里发生。我是否应该使用try / catch块包装通过http访问远程源的所有访问权限?或者,还有更好的方法? 通常,我不关心是否会发生这种情况,或者是否因此而无法完成某些任务。我关心的是,该过程应该将其忽略,然后继续执行下一个任务。

  • 问题内容: 我有一个定义相互递归表的模型: 要实际插入问题,我需要怎么做?我需要知道什么是正确的答案。但是要插入答案,我需要知道答案是什么。 如果有问题,我正在运行Postgres。 DDL为: 问题答案: 如果您使用数据修改CTE在 单个语句中 输入问题和答案,那么您甚至都不需要FK约束。更不用说实际制造(或发声)它们了- 这会贵得多。 资料模型 首先,我清理了您的数据模型: 不要使用非描述性的

  • 你可能必须和不好相处的人相处。甚至可能你本身就是一个不好相处的人。如果你是那种与同事和权威人物有许多矛盾的人,你应该珍惜这种独立所暗示的东西,但需要在不牺牲你的智力或原则的前提下提高你的人际交往能力。 在这方面没有什么经验,或者先前生活的行为模式在工作场合的经验不能适用的一些程序员,对这种事情会非常困扰。不好相处的人经常习惯于拒绝,并且与他人相比,他们更不容易受社交压力所影响。关键是合适地尊重他们

  • 我在继承的项目上有以下目录结构: 从或我可以从模型运行此,并且可以正常工作。使用PyCharm时,我可以在。 然而,当我在我的dev服务器上部署它时,这在。我得到错误 PyCharm做了些什么来避开这个问题? 如何在在开发服务器上运行Flask应用程序时是否同时在PyCharm中工作?我通常只使用来自目录。

  • 我真的很感激你能提供的任何帮助。