PlayScala コレクション型 Array,List,Map
Scalaで良く使われるコレクション型について見ていきます。
(1)Array型
Array型は配列として扱う。メモリ上で連続して扱われています。
同じ種類の大量のデータを効率的に扱う事が出来ます。
・データを指定して宣言
scala> var a = Array(10,20,30,40,50)
a: Array[Int] = Array(10, 20, 30, 40, 50)
Array型の要素は、添え字を指定して取得する事も出来ます。
scala> a(0)
res1: Int = 10
・ループで回す
for文を使ってループする事も出来ます。
scala> for(i <- 0 to a.length - 1) { println(a(i)) }
10
20
30
40
50
(2)List型
List型は連結リストのような構造になっています。
Array型と比べてデータの追加、削除が早いというメリットがあります。
・定義
scala> var m = List("abc", "def", "hij", "klm")
m: List[String] = List(abc, def, hij, klm)
・値の追加
リストの末尾に追加されます。
scala> m = m :+ "xyz"
m: List[String] = List(abc, def, hij, klm, xyz)
・ループで回す
for文を使ってループする事も出来ます。
scala> for(l <- list) { println(l) }
abc
def
hij
(3)Map型
Map型はキーと値が対になっています。
・定義
scala> var map = Map("a" -> 10, "b" -> 20, "c" -> 30, "d" -> 40)
map: scala.collection.immutable.Map[String,Int] = Map(a -> 10, b -> 20, c -> 30, d -> 40)
・値の取得
キーを指定して値を取得します。
scala> map.get("a")
res32: Option[Int] = Some(10)
・値の追加
以下のようにしてキーと値のセットを追加します。
通常のmapでは追加した順番が保証されないようです。
scala> map + ("e" -> 50)
res27: scala.collection.immutable.Map[String,Int] = Map(e -> 50, a -> 10, b -> 20, c -> 30, d -> 40)
・ループで回す
forループで回していきます。
scala> for (d <- map) println(d)
(e,50)
(a,10)
(b,20)
(c,30)
(d,40)
forループで、キーと値をセットで回す事も出来ます。
scala> for ((k, v) <- map) { println("key:%s, value:%d". format(k, v)) }
key:e, value:50
key:a, value:10
key:b, value:20
key:c, value:30
key:d, value:40
(1)Array型
Array型は配列として扱う。メモリ上で連続して扱われています。
同じ種類の大量のデータを効率的に扱う事が出来ます。
・データを指定して宣言
scala> var a = Array(10,20,30,40,50)
a: Array[Int] = Array(10, 20, 30, 40, 50)
Array型の要素は、添え字を指定して取得する事も出来ます。
scala> a(0)
res1: Int = 10
・ループで回す
for文を使ってループする事も出来ます。
scala> for(i <- 0 to a.length - 1) { println(a(i)) }
10
20
30
40
50
(2)List型
List型は連結リストのような構造になっています。
Array型と比べてデータの追加、削除が早いというメリットがあります。
・定義
scala> var m = List("abc", "def", "hij", "klm")
m: List[String] = List(abc, def, hij, klm)
・値の追加
リストの末尾に追加されます。
scala> m = m :+ "xyz"
m: List[String] = List(abc, def, hij, klm, xyz)
・ループで回す
for文を使ってループする事も出来ます。
scala> for(l <- list) { println(l) }
abc
def
hij
(3)Map型
Map型はキーと値が対になっています。
・定義
scala> var map = Map("a" -> 10, "b" -> 20, "c" -> 30, "d" -> 40)
map: scala.collection.immutable.Map[String,Int] = Map(a -> 10, b -> 20, c -> 30, d -> 40)
・値の取得
キーを指定して値を取得します。
scala> map.get("a")
res32: Option[Int] = Some(10)
・値の追加
以下のようにしてキーと値のセットを追加します。
通常のmapでは追加した順番が保証されないようです。
scala> map + ("e" -> 50)
res27: scala.collection.immutable.Map[String,Int] = Map(e -> 50, a -> 10, b -> 20, c -> 30, d -> 40)
・ループで回す
forループで回していきます。
scala> for (d <- map) println(d)
(e,50)
(a,10)
(b,20)
(c,30)
(d,40)
forループで、キーと値をセットで回す事も出来ます。
scala> for ((k, v) <- map) { println("key:%s, value:%d". format(k, v)) }
key:e, value:50
key:a, value:10
key:b, value:20
key:c, value:30
key:d, value:40