鉴于两个相同的元组,我如何按字典顺序比较它们?看起来这应该像下面的代码片段一样简单,但事实并非如此.任何简单的例子如何做到这一点?
var x = (1,2,3) < (1,2,4)
Run Code Online (Sandbox Code Playgroud)
如果他们列出,我可以定义一个递归函数,比较列表的头部直到找到差异或列表的结尾,但我不认为我可以为元组做到这一点.
我有这个案例类:
case class Offer(id: Int, amount: Int, interestRate: Double) extends Ordered[Offer] {
def compare(that: Offer) = interestRate.compareTo(that.interestRate)
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我定义了基于Offer.interestRate. 我希望订单增加。
我创建了这些优惠:
Offer(1, 5, 4.0)
Offer(2, 5, 0.5)
Offer(3, 5, 1.5)
Run Code Online (Sandbox Code Playgroud)
并将它们添加到优先级队列中:
val currentOffers: mutable.PriorityQueue[Offer] = mutable.PriorityQueue.empty[Offer]
Run Code Online (Sandbox Code Playgroud)
问题是,当我这样做时,currentOffers.dequeue()我得到Offer(1, 5, 4.0).
相反,我想得到:
Offer(2, 5, 0.5)
我需要改变什么?