컬렉션에서 가장 자주/공통 요소를 찾는 가장 좋은 방법은 무엇입니까? 예를 들어 :컬렉션에서 가장 빈번한/공통 요소 찾기?
는list = List(1, 3, 4, 4, 2)
list.mostCommon // => 4 !! This is what I want !!
흠 .. 무엇 하나 할 수있는 것은 groupBy
첫째을하는 것입니다 length
하여 다음 map
을하고 가장 큰 하나를 선택합니다.
Map(1 -> List(1), 4 -> List(4, 4), 3 -> List(3), 2 -> List(2))
(...)
Map(1 -> 1, 4 -> 2, 3 -> 1, 2 -> 1) // mapped by length. 4 -> 2 since there's two 4s
을 그리고 결국, 가장 높은 숫자 (2
)에 매핑되는 키 (4
)를 선택 : 그럼 당신은 얻을 것이다. (중첩 된 질문 : 무엇이 가장 좋은 방법입니까?). 그러나 그것은 그러한 간단한 조작을위한 많은 작업처럼 보인다.?
이렇게하는 것이 더 낳고/더 관용적 인 방법이 있습니까?
중첩 된 답 :'maxBy'를 사용합니다. – senia
최대 값이 하나 이상일 수 있습니다.이 경우 최대 값으로지도를 필터링 할 수 있습니다. –