บอกว่าฉันมีรายชื่อของหนังสือ
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))
แต่ในกรณีของหลายหนังสือกับเดียวกันคะแนนผมก็เหมือนจะเรียงลำดับตาม@title:menu ง bookName
. ฉันไม่แน่ใจว่าเพื่อเพิ่มเป็นสอง criterion ต้อง maxBy
? ฉันคิดว่าฉันสามารถ maxBy()
คะแนนอนแรกก็ฉันเก็บคะแนนของ bestBook
และตัวกรอง books
กับแม็กคะแนนแล้ว minBy()
คน bookName
?
แต่มันดูเหมือนจริงๆ cumbersome มีอีกวิธีที่มีประสิทธิภาพของทำแบบนี้? ฉันเคยเห็นมาก่อนหน้านี้เธรดว่ามีบางอย่างที่คล้ายกันกับ Ordering
ที่แยกกำหนด: Language กำลังจะออกคำสั่งโดยหลายค่าแต่ฉันไม่สามารถหาวิธีที่จะนิยาม Ordering
ในสถานการณ์แบบนี้