Spune că am o listă de cărți
val books = List(Book)
în cazul în care Book(bookID: String, bookName: String)
și o hartă
val scores = Map(bookID -> score:float)
Mi-ar place pentru a obține cartea cu cel mai mare score
în primul rând, apoi în ordine alfabetică de bookName
Obtinerea cartea cu cea mai mare evaluat scorul este destul de simplu:
val bestBook = books.maxBy(x => score(x.bookID))
Dar în cazul în care de mai multe cărți cu același scor atunci mi-ar place la fel de bookName
. Nu sunt sigur cum de a adăuga un al doilea criteriu pentru maxBy
? Cred că pot maxBy()
scorul în primul rând, atunci am prelua scorul de bestBook
și filtru books
cu punctajul maxim, apoi minBy()
la bookName
?
Dar asta mi se pare foarte greoaie, există o modalitate mai eficientă de a face acest lucru? Am văzut anterior fire care face ceva similar cu Ordering
implicit: Scala de Comanda de mai multe valori, dar nu am putut da seama cum de a defini Ordering
în acest context.