はじめに
Scalaのコレクションには色々な実装が存在します。
今回はその中でも『イミュータブル』なコレクションにフォーカスをあてて、各コレクションの特徴をまとめていきたいと思います。以降、ミュータブル/イミュータブルの明記がない場合はイミュータブルコレクションのことを指します。
(ミュータブル編は必要性に駆られたら調べますが、多分やらない・・・)
-
ここで書くこと
- 各コレクション実装の特徴
-
ここで書かないこと
- 『Seqとは?』のようなコレクション概念
- ミュータブルコレクションに関すること
内容は公式ドキュメントに沿ってまとめています。図も公式ドキュメントから拝借したものです。
動作環境
- OS
- MacOS Catalina
- CPU
- Corei9(2.4GHz 8コア)
- メモリー
- 64GB
- Scalaバージョン
- 2.13.2
Scalaのコレクション
以下の図は公式ドキュメントに使用されているものです。
資料:https://docs.scala-lang.org/ja/overviews/collections/overview.html
ただ、上記の図は少し古いようでScala2.13で追加されたコレクションが反映されていません。それらについても拾える範囲で拾っていきます。
コレクションにはざっくり以下の3つが存在します。
- Seq
- Map
- Set
これらの3つの種類のコレクションについて、各実装の特徴を調べていきたいと思います。当初は1ページに収める予定だったのですが、思ったよりも分量が多くなってしまったので、各コレクションごとにページを分割しています。詳細はリンク先のページでご確認ください。