假设我有一个书单
val books = List(Book)
在哪里Book(bookID: String, bookName: String)
和地图
val scores = Map(bookID -> score:float)
我想先得到最高的书score
,然后按字母顺序bookName
获得评分最高的书相当简单:
val bestBook = books.maxBy(x => score(x.bookID))
但如果多本书得分相同,我想按bookName
. 我不确定如何添加第二个标准maxBy
?我想我可以maxBy()
先得分,然后我检索 的分数,并使用最高分数进行bestBook
过滤,然后是?books
minBy()
bookName
但这看起来真的很麻烦,有没有更有效的方法呢?我已经看到以前的线程与Ordering
隐式执行类似的操作:Scala Ordering by multiple values,但我不知道如何Ordering
在这种情况下定义。