我有Map[String,String]
所以键是不同的,但大多数值都是重复的。例如 :Map[car-> "This is a car",truck-> "This is a car", fruit ->"This is a fruit"]
所以它应该返回"This is a car"
,因为它重复了两次。
我做了这样的事情。希望能帮助到你。
val j = x.groupBy(_._2)
然后
j.maxBy(_._2.size)
其中 x 是您的原始地图。第一次调用,返回一个 Map 然后你只得到键值对,其中的值(map ,有最大条目)
val m1 = Map("this" -> "that", "what" -> "that", "who" -> "me", "you" -> "who")
m1.groupBy(_._2).maxBy(_._2.size)
res0: ... = (that,Map(this -> that, what -> that))
另一种解决方案
map.values.groupBy(t => t ).values.maxBy(_.size).head
不是最优雅的,但我的解决方案就像
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