Set構造は、要素を順番付けしないで管理するデータ構造です。
Setについて
Setは要素の順序付けは不要だが、重複要素は許可したくない場合に使用します。
既に存在する要素と同じ要素を追加すると、その操作は無視されます。
(例外にはなりません)
Setの実装クラス
主要なSet系の実装クラスには以下のようなクラスがあります。
実装クラス | 特徴 |
---|---|
java.util.HashSet | 要素の取得順は保証されない 要素にnullを使用する事が可能 |
java.util.TreeSet | 要素は自動ソートで管理されるのでソートされた順番で要素が取得される 要素にnullを使用は不可 |
java.util.LinkedHashSet | HashSetに二重リンクリストを追加したもの |
Set系実装クラスの比較
Set系クラスの特徴をまとめると以下のようになります。
HashSet | TreeSet | LinkedHashSet | |
---|---|---|---|
要素の重複 | ✕ | ✕ | ✕ |
null値の要素 | ◯ | ✕ | ◯ |
自動ソート | ✕ | ◯ | ✕ |
スレッドセーフ | ✕ | ✕ | ✕ |
コメント