假设我有一个书单
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过滤,然后是?booksminBy()bookName
但这看起来真的很麻烦,有没有更有效的方法呢?我已经看到以前的线程与Ordering隐式执行类似的操作:Scala Ordering by multiple values,但我不知道如何Ordering在这种情况下定义。