我有Map[String,String]
所以键是不同的,但大多数值都会重复。
例如:Map[car-> "This is a car",truck-> "This is a car", fruit ->"This is a fruit"]
因此它应该返回"This is a car"
,因为它会重复两次。
答案 0 :(得分:6)
我做了这样的事。希望它有所帮助。
val j = x.groupBy(_._2)
然后
j.maxBy(_._2.size)
其中x是您的原始地图。第一个调用,返回一个Map,然后你只需得到键值对(map,有max条目)
答案 1 :(得分:3)
val m1 = Map("this" -> "that", "what" -> "that", "who" -> "me", "you" -> "who")
m1.groupBy(_._2).maxBy(_._2.size)
res0: ... = (that,Map(this -> that, what -> that))
答案 2 :(得分:1)
另一种解决方案
map.values.groupBy(t => t ).values.maxBy(_.size).head
答案 3 :(得分:0)
不是最优雅的,但我的解决方案就像
val list = Map(car-> "This is a car",truck-> "This is a car", fruit ->"This is a fruit")
list.map{
case (k,v) => if(list.filter{case (key,value)=> value==v }.size>1)v
}.toSet