0

マップを使用して入力ファイルをスキャンし、単語数を生成しました。マップキーは単語であり、値は単語の出現です。マップをリストに変換し、値の昇順で並べ替えました。したがって、2つのタプルのリストがあり、リストの最初の位置に最も頻度の低い単語があり、リストの最後の位置に最も頻繁に出現する単語があります。

myList.lastを使用してリストの最後の位置にある2tupleを簡単に取得し、myTuple._2を使用して結果の2番目の要素にアクセスできることを知っています。

1行のコードで実行できますか?できるだけ簡潔にしたいと思います。

4

1 に答える 1

1

つまり:

val muList = List(("aardvark", 1), ("cow", 5), ("dog", 9))
muList.last._2  // 9

これにより、最後の要素が取得muListされ、そこにあるタプルの 2 番目の項目が取得されます。

Listしかし、aや sort などに変換する必要はありません。から max-count 要素を取得するだけで、Mapはるかに高速になります。

val mu = Map("aardvark" -> 1, "dog" -> 9, "cow" -> 5)
val highestCountPair = mu.maxBy(_._2)   // ("dog",9)
highestCountPair._2                     // 9

または、単語をまったく気にしない場合は、次のようにします。

mu.map(_._2).max  // 9
于 2012-09-26T20:38:50.047 に答える