takafumi blog

日々の勉強メモ

Scala マップ / Map

環境   Scala 2.11.6 CentOS7.0

Scalaスケーラブルプログラミング」(コップ本)メモ

読了:第04章まで

■ マップ / Map

Scalaの集合は

  • 順序が存在しない
  • 重複を許可しない
  • ミュータブルとイミュータブルが両方存在する
  • 基本はイミュータブル

である。

▽初期化
// 通常はイミュータブルMap
scala> val map1 = Map[Int, String]()
map1: scala.collection.immutable.Map[Int,String] = Map()

// ミュータブルMap
scala> val map2 = scala.collection.mutable.Map[Int, String]()

// 初期化と値の設定を以下のように行う事も可能
scala> val map3 = Map(1 -> "I", 2 -> "II", 3 -> "III")
map3: scala.collection.immutable.Map[Int,String] = Map(1 -> I, 2 -> II, 3 -> III)

// キーはInt以外でも可
scala> val map4 = Map("I" -> "AAA", "II" -> "BBB")
map4: scala.collection.immutable.Map[String,String] = Map(I -> AAA, II -> BBB)
▽値の設定
// イミュータブルMapに値を設定はできない
scala> map1 += (1 -> "<1>")
<console>:9: error: value += is not a member of scala.collection.immutable.Map[Int,String]
              map1 += (1 -> "<1>")

// ミュータブルMap
scala> map2 += (1 -> "<1>")
res1: map2.type = Map(1 -> <1>)
▽値の取得
// キーを指定して呼び出し
scala> map4("I")
res4: String = AAA

scala> map2(1)
res5: String = <1>

takafumi-s.hatenablog.com