Java Set
1. Java Set インターフェース
Set インターフェースは、Javaコレクションフレームワーク(Java Collections Framework)の一部であり、ユニークな要素(一意の要素)の集合を格納するために使用されます。
List とは異なり、Set は要素の重複を許可しません。また、基本的には要素の順序を保持しません(ただし、TreeSet や LinkedHashSet を使用する場合を除きます)。
Set を実装する一般的なクラス:
- HashSet - 高速な動作が可能だが、順序は保持されない。
- TreeSet - 要素がソート(並び替え)された状態で管理される。
- LinkedHashSet - 要素が挿入された順序を維持する。
ヒント: ユニークな値のみを保存する必要がある場合には、Set を使用してください。
2. 主要なSetメソッド
Setインターフェースで利用できる標準的なメソッドは以下の通りです。
| メソッド | 説明 |
|---|---|
add() | 要素がまだセットに存在しない場合、その要素を追加する。 |
remove() | セットから指定された要素を削除する。 |
contains() | セットに特定の要素が含まれているかを確認する。 |
size() | セット内の要素数を返す。 |
clear() | セットからすべての要素を削除する。 |
3. Set と List の比較
開発において Set と List のどちらを選択すべきか、その主な違いを以下の表にまとめました。
| 特性 | List | Set |
|---|---|---|
| 重複の許可 | 重複を許可する | 重複を許可しない |
| 順序の保持 | 挿入順序を維持する | 順序を保証しない(一部の実装を除く) |
| アクセス方法 | インデックスによるアクセスが可能 | インデックスによるアクセスは不可 |