Set構造は、要素を順番付けしないで管理するデータ構造です。
Setについて
Setは要素の順序付けは不要だが、重複要素は許可したくない場合に使用します。
既に存在する要素と同じ要素を追加すると、その操作は無視されます。
(例外にはなりません)

Setの実装クラス
主要なSet系の実装クラスには以下のようなクラスがあります。
| 実装クラス | 特徴 |
|---|---|
| java.util.HashSet | 要素の取得順は保証されない 要素にnullを使用する事が可能 |
| java.util.TreeSet | 要素は自動ソートで管理されるのでソートされた順番で要素が取得される 要素にnullを使用は不可 |
| java.util.LinkedHashSet | HashSetに二重リンクリストを追加したもの |
Set系実装クラスの比較
Set系クラスの特徴をまとめると以下のようになります。
| HashSet | TreeSet | LinkedHashSet | |
|---|---|---|---|
| 要素の重複 | ✕ | ✕ | ✕ |
| null値の要素 | ◯ | ✕ | ◯ |
| 自動ソート | ✕ | ◯ | ✕ |
| スレッドセーフ | ✕ | ✕ | ✕ |
コメント