Listインターフェースと実装クラス
List関連のクラスをまとめる。
Table of Contents
この記事は最終更新から3年以上経過しています。
執筆時バージョン
Java | Java SE 8 |
コレクションフレームワークの一つで、順序づけられたコレクション。(挿入)順序が重要で、要素の重複も可能。nullも可能。
Listの主な特徴は次の通り。
-
順序づけられたコレクション。
-
要素の重複が可能。
-
nullも挿入可能。複数nullも可能。
Listインターフェースと主な実装クラス

Figure 1. Listインターフェースと主な実装クラス図
クラス | マルチ スレッド |
特徴 |
---|---|---|
ArrayList |
× |
基本的なList実装。 |
LinkedList |
× |
双方向リストによる実装。 「Deque」実装でもある。 |
CopyOnWriteArrayList |
○ |
マルチスレッド対応のList実装。 |
「ArrayList」と「LinkedList」は実装が違うので、利用方法によりパフォーマンスに差が出る場合がある。マルチスレッドでは「CopyOnWriteArrayList」が基本。
クラス | マルチ スレッド |
特徴 |
---|---|---|
Vector |
△ |
「CopyOnWriteArrayList」を使うべき。 |
Stack |
△ |
「ArrayDeque」などの「Deque」の実装を使うべき。 |
(図には掲載していないが)「Vector」「Stack」というList実装もある。ただし同期化コレクションであることから利用を避ける。
参考: 並列コレクションを使う
Appendix A: 参考
Appendix B: 改訂履歴
-
v1.0, 2015-03-02: 初稿