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

このブログの人気の投稿

技術メモ「503 Service Unavailable」

グーグルグループのメーリングリストの返信先が個人になってしまう

『ネットワークドライブ』のトラブル