在集合中找到最常見/最常見的元素的最佳方式是什麼?例如:找到一個集合中最常見/最常見的元素?
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
請記住,可能存在多個最大值,在這種情況下,您可以按照找到的最大值過濾您的地圖。 –