Scala で List から Mapに変換する
こんにちは、 @kz_morita です。
Scala で List から Map に変換する方法についてまとめます。
toMap で Map にする list から Map にするためには、まず List を Tuple のリストに変換してから toMap メソッドを呼ぶことで変換することができます。
val list = Seq(1,2,3,4,5) list.map(i => (i, i.toString)).toMap // Map<Int, String> 実装の中身をみる toMap の定義を見ると以下のようになっています。
def toMap[K, V](implicit ev: A <:< (K, V)): immutable.Map[K, V] = immutable.Map.from(this.asInstanceOf[IterableOnce[(K, V)]]) Map.from の定義を見ると以下のようになってました。
def from[K, V](it: collection.IterableOnce[(K, V)]): Map[K, V] = it match { case it: Iterable[_] if it.isEmpty => empty[K, V] case m: Map[K, V] => m case _: (newBuilder[K, V] ++= it).