List構造は、要素をインデックスで順番付けして管理するデータ構造で、要素を先頭から順番にアクセスしたり、インデックス指定して要素にアクセスする処理が得意です。
Listについて
要素を順序付けて管理したい場合にList系コレクションを使用します。
Listは要素を追加すると基本的にリストの末尾に追加され、リストの途中に挿入することも可能です。要素はインデックスで管理され、インデックスを指定して要素を取り出したり更新、削除も簡単に行えます。 要素数を自由に変更できる配列だと考えるとわかりやすいと思います。
List系実装クラス
主要なList系の実装クラスには以下のようなクラスがあります。
実装クラス | 特徴 |
---|---|
java.util.ArrayList | 要素の検索・更新は早いが、挿入・削除が遅い |
java.util.LinkedList | 要素の挿入・削除は早いが、検索・更新が遅い |
java.util.Vector | スレッドセーフに処理を行えるが、 ArrayList、LinkedListに比べるとパフォーマンスは悪い |
List系実装クラスの比較
List系クラスの特徴をまとめると以下のようになります。
ArrayList | LinkedList | Vector | |
---|---|---|---|
要素の重複 | ◯ | ◯ | ◯ |
null値の要素 | ◯ | ◯ | ◯ |
自動ソート | ✕ | ✕ | ✕ |
スレッドセーフ | ✕ | ✕ | ◯ |
コメント