6
Próbuję pobrać maksymalną wartość z mapy wraz z jej kluczem. Na przykład:Uzyskiwanie maksymalnej pary wartości klucza w mapie Scala według wartości
val map = Map('a' -> 100, 'b' -> 23, ... 'z' -> 56)
gdzie 100 to największa wartość, jak pójdę o pociągnięcie ('a', 100)? Zasadniczo chcę używać Map.max, ale szukam według wartości, a nie klucza.
doskonały, że działa! Muszę zapytać, skąd otrzymujesz składnię predykatu przekazanego do maxBy()? – pmaurais
Jeśli zajrzysz do [dokumentacji API] (http://www.scala-lang.org/api/current/#scala.collection.Map), znajdziesz dla 'Map [A, B]': 'def maxBy [C] (f: ((A, B)) ⇒ C) (niejawny cmp: Kolejność [C]): (A, B) '- formatowanie dokumentu jest zepsute, obawiam się, więc napisałem poprawny formularz tutaj ze świeżym parametrem typu 'C'. Tak więc przekazujesz funkcję z krotki (klucz, wartość) do dowolnej innej wartości, dla której istnieje porządek. 'map.maxBy (_._ 2)' to jest po prostu krótki formularz dla 'map.maxBy {case (key, value) => value}'. –