Java における Set の使用方法

JavaのSetはCollectionインターフェイスを継承した集合インターフェイスで、HashSet、LinkedHashSet、TreeSetなどの実装クラスがあります。

Set の主な特徴は以下です。

  1. セット内の要素は順序を持たず、挿入順序どおりに並んでいるわけではありません。
  2. セットには重複した要素が含まれず、重複した要素をセットに追加しようとしても、その操作は無視されます。
  3. Set には 1 つ以上の null 要素を含めることはできません。

常用されているSet操作には、

  1. 追加要素:add(要素)メソッドを使用してセットに要素を追加します。
  2. 要素を削除:remove(element)メソッドを使用してSetから指定の要素を削除します。
  3. 要素を含むかどうかを確認する:Setに指定した要素が含まれるかどうかは、contains(要素)メソッドで確認します。
  4. Setのサイズの取得:size()メソッドでSet内の要素数を取得する。
  5. 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は赤黒木に基づいて実装されており、要素の順序付けを保証します。

bannerAds