Javaちょこっとリファレンス
HOME > コレクションクラスの比較

コレクションクラスの比較

コレクションクラスには大きく分けてList、Map、Setの3種類あります。そして、さらに性質の異なるクラスに分かれています。各コレクションクラスの特徴は以下のようになっています。

【コレクションクラスの比較】
 ArrayListLinkedListHashMapTreeMapHashSetTreeSet
インタフェイスListListMapMapSetSet
要素の重複××××
null値の要素××
自動ソート××××

List構造 コレクションクラス

List構造は、要素を順番付けして管理するデータ構造です。
ArrayList」「LinkedList」の2種類があります。

List構造

要素がインデックス(番号)順に並んでいるので、番号を指定して要素の取得、挿入、更新、削除ができます。また、Iteratorや拡張for構文を使って先頭から順番に要素を取得することも出来ます。
ArrayListは要素の取得が早いが挿入や削除が遅い、LinkedListは要素の挿入や削除は早いが取得が遅いという特徴があります。
List構造は、要素の重複は可能です。

Map構造 コレクションクラス

Map構造は、キーと値をセットにしたものを1つの要素として管理するデータ構造です。
HashMap」「TreeMap」の2種類があります。

Map構造

要素がキーと値で管理されているので、キーを指定して値の取得や更新、削除を行います。
HashMapは格納順は管理されませんが、TreeMapはキーによって自動的にソートして管理されます。
また、HashMapはキーと値にnullを使用することが可能ですが、TreeMapはnullは使用することができません。
Map構造は、キーによって値を管理するためキーの重複は不可です。
(同じキーがセット(put)された場合は上書きされます。)

Set構造 コレクションクラス

Set構造は、要素を順番付けしないで管理するデータ構造です。
HashSet」「TreeSet」の2種類があります。

Set構造

Listのような順番付けや、Mapのようなキー管理もないため、要素の取得にはIteratorや拡張for構文で取得します。
このようなことからHashSetは要素の取得順は保証されませんが、TreeSetは自動ソートされて管理されるのでソートされた順番で要素が取得されます。
また、HashSetは要素にnullを使用する事が可能ですが、TreeSetはnullを使用する事ができません。
Set構造は、要素の重複は不可です。(同じキーがセット(add)された場合は上書きされます。)

コレクションカテゴリ

HOMEへ戻る TOPへ戻る