Java 和 Scala 中的最小和最大堆

Min and Max heap in Java and Scala

在这里做了一些挖掘之后,我的理解是-

Java 默认优先级队列是最小堆,而 Scala 默认优先级队列是最大堆。 这个对吗? 为什么scala中的实现不同,我认为这只会引起更多混乱。

JavaPriorityQueue(参见docs)将最高优先级的项目定义为具有最低排序顺序的项目,所以最小堆是数据结构的合理选择。

Scala PriorityQueue(参见 docs)显然将最高优先级项定义为 highest-sorting,因此最大堆是数据结构的逻辑选择。

如果你问为什么在 Java 中最高优先级意味着最低排序,而最高排序是 Scala,只有相应语言库的开发人员才能回答这个问题。