Каков наилучший способ поиска наиболее часто встречающегося элемента в коллекции? Например:
list = List(1, 3, 4, 4, 2)
list.mostCommon // => 4 !! This is what I want !!
Хм.. Что можно сделать, это сначала сделать groupBy
, а затем map
их на length
, а затем выбрать самый большой. Итак, вы получите:
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 two 4s
И затем, в конце, выберите ключ (4
), который отображает наибольшее число (2
). (вложенный вопрос: что это лучший способ сделать это?). Но это похоже на большую работу для такой простой операции.?
Есть ли лучший/более идиоматический способ сделать это?