Scalaのコレクションを表す次のデータ構造の紹介です。
Array=> 配列List=> リスト構造Vector=> 追加削除、検索の速度が一定な万能なデータ構造Map=> キーと値のセットSet=> 集合Range=> 範囲
👽 Array
Arrayは一般的なプログラミング言語の配列です。
val arr = Array[Int](1, 2, 3, 4, 5) // 型を明確に指定した定義  | 
🚌 List
Listは一度作成したら中身を変更できない、immutableな構造をしています。
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)  | 
Listの特徴は次のとおりです。
Listは先頭へのアクセスは早い- 末尾への要素の追加、ランダムな要素へのアクセスは遅い
 
Nil
Nilは空のListを表すオブジェクトです。
val a1 = Nil //=> List()  | 
::
::(コンス)はすでにあるListに要素をつけるメソッドです。
val a1 = 1::Nil //=> List(1)  | 
++
++はListどうしを連結できます。
val a1 = List(1, 2) ++ List(3, 4) //=> List(1, 2, 3, 4)  | 
mkString
mkStringメソッドはListを結合して文字列にします。
List(1, 2, 3, 4).mkString //=> 1234  | 
map
mapメソッドは各要素を加工して新しいListを返します。
List(1, 2, 3, 4).map(x => x * 2) //=> List(2, 4, 6, 8)  | 
filter
filterメソッドは条件にあった要素を抽出した新しいListを返します。
List(1, 2, 3, 4).filter(x => x % 2 == 0) //=> List(2, 4)  | 
find
findメソッドは条件にあった最初の要素を返します。
List(1, 2, 3, 4).find(x => x % 2 == 0) //=> Some(2)  | 
count
countメソッドは条件にマッチする要素の件数を返します。
List(1, 2, 3, 4).count(x => x % 2 == 0) //=> 2  | 
😀 Vector
Vectorは要素の追加・削除、ランダムなアクセスで一定の速度で処理を行えるimmutableなデータ構造です。
// データの追加  | 
🐯 Map
Mapはキーとバリューのペアのデータ構造です。
val urls = Map(  | 
通常のMapはimmutableなデータ構造です。
val m = Map("hoge" -> 1, "fuga" -> 2, "pugi" -> 3)  | 
mutableなデータ構造のMapも利用できます。
import scala.collection.mutable  | 
😎 Set
Setは値の集合を表すデータ構造です。Setも通常はimmutableなデータ構造です。
val s = Set(1, 2, 3, 4)  | 
immutableなデータ構造のSetも利用できます。
import scala.collection.mutable  | 
🗻 Range
Rangeは範囲を表すオブジェクトでtoやuntilを使って生成できます。
1 to 5 //=> Range 1 to 5  | 
