コレクションフレームワークとは、コレクション(オブジェクトの集合)を操作するために用意されたJava標準のAPIです。用途に応じて、リスト(List)、Set(セット)、Map(マップ)、Queue(キュー)といったインターフェイスを使い分けることができます。以下に、それぞれのインターフェイスに属する主な実装クラスをまとめます。コレクションフレームワークの実装クラスは、[実装スタイル][インターフェイス名]の形式で命名されています。
| コレクションフレームワークの主な実装クラス | ||
|---|---|---|
| インターフェイス | 実装クラス | 概要 |
| List | ArrayList | 可変長配列 |
| LinkedList | リンク構造のリスト | |
| Set | HashSet | 要素の集合(順不同。重複は不可) |
| TreeSet | 要素の集合(キーでソート。重複は不可) | |
| Map | HashMap | 基本的なマップ |
| TreeMap | キーにより要素をソートしたマップ | |
| Queue(Dequeue) | ArrayDeque | 両端キュー |
その他、Vector、Stack、Hashtableなどのクラスもありますが、これらはコレクションフレームワークが登場する以前に提供されていた古いクラスです。現在では利用すべきではありません。
Java 21以降では、コレクション内の要素を順序だてて管理するためのインターフェイスとしてSequencedCollection、SequencedMap、SequencedSetが追加されました。
これらSequencedXxxxxインターフェイスによって、実装関係からそのクラスが順序を持つかを判断することが簡単になります。
本稿で扱っているクラスとしては、ArrayList、LinkedList、ArrayDeque、TreeMapなどがSequencedXxxxx実装クラスです。
- コレクションフレームワーク_目次
- コレクションフレームワーク
- コレクションを初期化する
- synchronizedList/synchronizedMap/synchronizedSetメソッド
- ArrayListクラス
- asListメソッド
- toArrayメソッド
- LinkedList
- HashMap
- TreeMap
- NavigableMap
- HashSet
- ArrayDeque
監修
山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。