Scalaのコレクションたち
Scalaのコレクション(データ構造)。
Scalaのコレクションは、特別にパフォーマンス上の注意が必要ないときはSeqやMapといった抽象的な名前で利用する
それらの中身は実際はListだったりHashMapだったりする
これらのデフォルト実装は広範な場面でパフォーマンスが出るようになっている
必要に応じて、VectorやTreeMapといった具体的な実装を明に使えばよい、という思想
実装の特性に合わせて、特別なメソッドが呼べるようになったりする
例えばTreeSetにはrangeというクエリが可能になる
また、Scalaのコレクションはイミュータブル(デフォルト)なものに加えてミュータブルなコレクションも提供されている
Scalaのコレクションメソッドはムチャクチャ充実しているので、「こういう処理ないの」みたいなケースでは大抵実装がある
基本
Seq
シーケンス。セックと呼ばれることが多い。
他の言語では「配列」と呼ばれている箇所に使われる。
ランダムアクセスやイテレーションが可能。
Seq(42)のようにリテラルを書いた場合、デフォルトではListになる。
Map
辞書構造。他の言語でもおなじみ。
キーを指定しての取り出しや、getOrElseといった便利なオペレーションが可能。
Seq[(A, B)]はMap[A, B]と相互変換できる。
Set
重複と順序を持たない集合。
応用