私はMap[String,String]
キーを区別していますが、ほとんどの値が繰り返されています。例えば :Map[car-> "This is a car",truck-> "This is a car", fruit ->"This is a fruit"]
"This is a car"
2回繰り返されるので、それは戻ってくるはずです。
私はこのようなことをしました。それが役に立てば幸い。
val j = x.groupBy(_._2)
それで
j.maxBy(_._2.size)
ここで、xは元のマップです。最初の呼び出しはマップを返し、次に値(マップ、最大エントリ数)が存在するキーと値のペアを取得します。
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