【发布时间】:2016-11-20 02:39:38
【问题描述】:
我在下面定义的 Scala 中有一个优先级队列。我的目标是,当我调用 dequeue 时,我会得到该三元组中第三个元素最少的三元组。我认为使用订购是要走的路,但我似乎无法让它发挥作用。
import scala.collection.mutable.PriorityQueue
def orderByWeight(lst : (Int, Int, Int)) = lst._3
val pq = new PriorityQueue[(Int, Int, Int)]()(Ordering.by(orderByWeight))
var x = ListBuffer((0,1,2), (0,2,3), (0,3,4))
x.map(i => pq.enqueue(i))
我对我的orderByWeight 函数应该是什么感到困惑。对于上面的代码,如果我调用pq.dequeue,所需的输出应该是(0, 1, 2)。注意x 是随机订购的。有任何想法吗?
【问题讨论】:
标签: scala priority-queue