マップのサブセットを取得するにはどうすればよいですか?
私たちが持っていると仮定します
val m: Map[Int, String] = ...
val k: List[Int]
のすべてのキーがk存在する場所m。
mここで、キーがリストにあるペアのみを含むMap のサブセクトを取得したいと思いますk。
のようなものm.intersect(k)ですがintersect、マップ上では定義されていません。
1 つの方法は、 : を使用することfilterKeysですm.filterKeys(k.contains)。ただし、元のマップのキーごとにリスト内の検索を実行する必要があるため、これは少し遅くなる可能性があります。
私が考えることができる別の方法は、ですk.map(l => (l, m(l)).toMap。ここでは、本当に関心のあるキーを反復処理するだけで、検索は行いません。
より良い(組み込みの)方法はありますか?