6
키와 함께 맵에서 최대 값을 가져 오려고합니다. 예를 들어 :값으로 스칼라 맵에서 최대 키 값 쌍 얻기
(100)는 최대 값이val map = Map('a' -> 100, 'b' -> 23, ... 'z' -> 56)
은 어떻게 (100, 'A'를) 당기 가겠어요? 필자는 기본적으로 Map.max를 사용하지만 키가 아닌 값으로 검색하려고합니다.
키와 함께 맵에서 최대 값을 가져 오려고합니다. 예를 들어 :값으로 스칼라 맵에서 최대 키 값 쌍 얻기
(100)는 최대 값이val map = Map('a' -> 100, 'b' -> 23, ... 'z' -> 56)
은 어떻게 (100, 'A'를) 당기 가겠어요? 필자는 기본적으로 Map.max를 사용하지만 키가 아닌 값으로 검색하려고합니다.
당신은 단지 값이 키 - 값 쌍에서 기능 maxBy
를 사용할 수 있습니다
val map = Map('a' -> 100, 'b' -> 23, 'z' -> 56)
map.maxBy(_._2) // (a,100)
이
map.maxBy { case (key, value) => value }
완벽한에 대한 간단한 형태, 작동합니다! maxBy()에 전달 된 술어에 대한 구문을 어디에서 구하고 있습니까? – pmaurais
[API 문서] (http://www.scala-lang.org/api/current/#scala.collection.Map)를 살펴보면'Map [A, B]'를 찾을 수 있습니다 : def maxBy [C] (f : ((A, B)) ⇒ C) (암시 적 cmp : 주문 [C]) : (A, B)'- 문서 형식이 잘못 되었으니 까, 여기에 새로운 유형 매개 변수 'C'가 있습니다. 따라서 (key, value) 튜플의 함수를 순서가 존재하는 다른 값으로 전달합니다. 'map.maxBy (_._ 2)'는'map.maxBy {case (key, value) => value}'의 약식 일뿐입니다. –