0

私はMap[String,String]キーを区別していますが、ほとんどの値が繰り返されています。例えば ​​:Map[car-> "This is a car",truck-> "This is a car", fruit ->"This is a fruit"]

"This is a car"2回繰り返されるので、それは戻ってくるはずです。

4

4 に答える 4

6

私はこのようなことをしました。それが役に立てば幸い。

val j = x.groupBy(_._2)

それで

j.maxBy(_._2.size)

ここで、xは元のマップです。最初の呼び出しはマップを返し、次に値(マップ、最大エントリ数)が存在するキーと値のペアを取得します。

于 2013-03-08T06:08:35.203 に答える
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))
于 2013-03-08T06:12:11.080 に答える
1

別の解決策

 map.values.groupBy(t => t ).values.maxBy(_.size).head
于 2013-03-08T10:50:34.070 に答える
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
于 2013-03-08T06:22:16.830 に答える