Java における Set の使用方法
JavaのSetはCollectionインターフェイスを継承した集合インターフェイスで、HashSet、LinkedHashSet、TreeSetなどの実装クラスがあります。
Set の主な特徴は以下です。
- セット内の要素は順序を持たず、挿入順序どおりに並んでいるわけではありません。
- セットには重複した要素が含まれず、重複した要素をセットに追加しようとしても、その操作は無視されます。
- Set には 1 つ以上の null 要素を含めることはできません。
常用されているSet操作には、
- 追加要素:add(要素)メソッドを使用してセットに要素を追加します。
- 要素を削除:remove(element)メソッドを使用してSetから指定の要素を削除します。
- 要素を含むかどうかを確認する:Setに指定した要素が含まれるかどうかは、contains(要素)メソッドで確認します。
- Setのサイズの取得:size()メソッドでSet内の要素数を取得する。
- Setを反復処理する:Set内の要素は、for-eachループまたはイテレータを使用して反復処理できます。
以下にコードの例を示します。
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
// 添加元素
set.add("apple");
set.add("banana");
set.add("orange");
// 删除元素
set.remove("banana");
// 判断是否包含某个元素
System.out.println(set.contains("apple")); // 输出true
// 获取Set的大小
System.out.println(set.size()); // 输出2
// 遍历Set
for (String element : set) {
System.out.println(element);
}
// 输出:
// apple
// orange
}
}
HashSetはSetインタフェースの実装クラスで、ハッシュ表を用いて要素を格納するため、挿入・検索といった操作の時間がO(1)と高速です。ただし、HashSetは要素の順序を保証しません。挿入順序を維持したい場合はLinkedHashSetの使用を検討しましょう。それとは対照的にTreeSetは赤黒木に基づいて実装されており、要素の順序付けを保証します。