Listインターフェースと実装クラス

List関連のクラスをまとめる。

執筆時バージョン
Java

Java SE 8

コレクションフレームワークの一つで、順序づけられたコレクション。(挿入)順序が重要で、要素の重複も可能。nullも可能。

Listの主な特徴は次の通り。

  • 順序づけられたコレクション。

  • 要素の重複が可能。

  • nullも挿入可能。複数nullも可能。

Listインターフェースと主な実装クラス

Listインターフェースと主な実装クラス図
Figure 1. Listインターフェースと主な実装クラス図
Table 1. 主なList実装クラス
クラス マルチ
スレッド
特徴

ArrayList

×

基本的なList実装。

LinkedList

×

双方向リストによる実装。 「Deque」実装でもある。

CopyOnWriteArrayList

マルチスレッド対応のList実装。

「ArrayList」と「LinkedList」は実装が違うので、利用方法によりパフォーマンスに差が出る場合がある。マルチスレッドでは「CopyOnWriteArrayList」が基本。

Table 2. 「Vector」「Stack」
クラス マルチ
スレッド
特徴

Vector

「CopyOnWriteArrayList」を使うべき。

Stack

「ArrayDeque」などの「Deque」の実装を使うべき。

(図には掲載していないが)「Vector」「Stack」というList実装もある。ただし同期化コレクションであることから利用を避ける。

Appendix A: 参考

Appendix B: 改訂履歴

  • v1.0, 2015-03-02: 初稿