Tuple3以上をもつListから、Tupleの値をキーにMapを作成する
たとえば、次のようなリストがあったとする。
val members = List( ("Momota", "red", 1994), ("Tamai", "yellow", 1995), ("Sasaki", "pink", 1996), ("Ariyasu", "green", 1995), ("Takagi", "purple", 1995) )
これを、Map("Momota" -> ("red", 1994), "Tamai" -> ("yellow", 1995), ...)
というMapの形にしたい。
このような場合は、Listに対してmapメソッドで処理をかけるのだが、パターンマッチを利用して次のように記述する方法がある。
val membersMap = members.map{ case (key, val0, val1) => key -> (val0, val1) }.toMap
このとき、list.map( case (a, b, c) => a -> (b ,c) )
のように()
を使うとエラーとなるので、{}
を使うようにする。