Scala でコレクションをキーによるマップに変換する最良の方法は? 質問する

Scala でコレクションをキーによるマップに変換する最良の方法は? 質問する

c型のコレクションがあり、 (型の)にTプロパティがある場合、pTPキー抽出によるマップ?

val c: Collection[T]
val m: Map[P, T]

一つの方法は次のとおりです。

m = new HashMap[P, T]
c foreach { t => m add (t.getP, t) }

しかし、今は可変マップ。これを1行で表すより良い方法はあるでしょうか?不変マップ?(もちろん、Java の場合と同じように、上記を単純なライブラリ ユーティリティに変換することもできますが、Scala ではその必要はないと思います)

ベストアンサー1

使用できます

c map (t => t.getP -> t) toMap

ただし、これには 2 回の走査が必要であることに注意してください。

おすすめ記事