工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java HashSet クラス

Java HashSet クラス

このチュートリアルでは、Java HashSet クラスについて学習します。例を使って、さまざまなハッシュ セットの方法と操作について学習します。

HashSet Java Collections フレームワークのクラスは、ハッシュ テーブル データ構造の機能を提供します。

Set インターフェイスを実装します。


ハッシュセットの作成

ハッシュ セットを作成するには、java.util.HashSet をインポートする必要があります。 最初にパッケージ化します。

パッケージをインポートしたら、Java でハッシュ セットを作成する方法を次に示します。

// HashSet with 8 capacity and 0.75 load factor
HashSet<Integer> numbers = new HashSet<>(8, 0.75);

ここでは、numbers という名前のハッシュ セットを作成しました。 .

注意、新しい HashSet<>(8, 0.75) の部分 .ここで、最初のパラメータは容量です 、2 番目のパラメータは loadFactor です .

デフォルトの容量と負荷率

容量や負荷率を定義せずにハッシュテーブルを作成することができます。たとえば、

// HashSet with default capacity and load factor
HashSet<Integer> numbers1 = new HashSet<>();

デフォルトでは、


HashSet のメソッド

HashSet クラスは、セットに対してさまざまな操作を実行できるようにするさまざまなメソッドを提供します。


要素を HashSet に挿入

たとえば、

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumber = new HashSet<>();

        // Using add() method
        evenNumber.add(2);
        evenNumber.add(4);
        evenNumber.add(6);
        System.out.println("HashSet: " + evenNumber);

        HashSet<Integer> numbers = new HashSet<>();
        
        // Using addAll() method
        numbers.addAll(evenNumber);
        numbers.add(5);
        System.out.println("New HashSet: " + numbers);
    }
}

出力

HashSet: [2, 4, 6]
New HashSet: [2, 4, 5, 6]

HashSet 要素へのアクセス

ハッシュセットの要素にアクセスするには、 iterator() を使用できます 方法。この方法を使用するには、 java.util.Iterator をインポートする必要があります パッケージ。たとえば、

import java.util.HashSet;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        // Calling iterator() method
        Iterator<Integer> iterate = numbers.iterator();
        System.out.print("HashSet using Iterator: ");
        // Accessing elements
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

出力

HashSet: [2, 5, 6]
HashSet using Iterator: 2, 5, 6,

要素を削除

たとえば、

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        // Using remove() method
        boolean value1 = numbers.remove(5);
        System.out.println("Is 5 removed? " + value1);

        boolean value2 = numbers.removeAll(numbers);
        System.out.println("Are all elements removed? " + value2);
    }
}

出力

HashSet: [2, 5, 6]
Is 5 removed? true
Are all elements removed? true

オペレーションの設定

HashSet のさまざまなメソッド クラスを使用して、さまざまなセット操作を実行することもできます。


セットの結合

2 つのセット間の結合を実行するには、addAll() を使用できます。 方法。たとえば、

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("HashSet1: " + evenNumbers);

        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(3);
        System.out.println("HashSet2: " + numbers);

        // Union of two set
        numbers.addAll(evenNumbers);
        System.out.println("Union is: " + numbers);
    }
}

出力

HashSet1: [2, 4]
HashSet2: [1, 3]
Union is: [1, 2, 3, 4]

集合の交差

2 つのセット間の交差を実行するには、retainAll() を使用できます。 方法。例えば

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet1: " + primeNumbers);

        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("HashSet2: " + evenNumbers);

        // Intersection of two sets
        evenNumbers.retainAll(primeNumbers);
        System.out.println("Intersection is: " + evenNumbers);
    }
}

出力

HashSet1: [2, 3]
HashSet2: [2, 4]
Intersection is: [2]

セットの違い

2 つのセットの差を計算するには、removeAll() を使用できます。 方法。たとえば、

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);
        System.out.println("HashSet1: " + primeNumbers);

        HashSet<Integer> oddNumbers = new HashSet<>();
        oddNumbers.add(1);
        oddNumbers.add(3);
        oddNumbers.add(5);
        System.out.println("HashSet2: " + oddNumbers);

        // Difference between HashSet1 and HashSet2
        primeNumbers.removeAll(oddNumbers);
        System.out.println("Difference : " + primeNumbers);
    }
}

出力

HashSet1: [2, 3, 5]
HashSet2: [1, 3, 5]
Difference: [2]

サブセット

セットが別のセットのサブセットであるかどうかを確認するには、 containsAll() を使用できます 方法。たとえば、

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        System.out.println("HashSet1: " + numbers);

        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet2: " + primeNumbers);

        // Check if primeNumbers is a subset of numbers
        boolean result = numbers.containsAll(primeNumbers);
        System.out.println("Is HashSet2 is subset of HashSet1? " + result);
    }
}

出力

HashSet1: [1, 2, 3, 4]
HashSet2: [2, 3]
Is HashSet2 is a subset of HashSet1? true

HashSet のその他のメソッド

メソッド 説明
clone() HashSet のコピーを作成します
contains() HashSet を検索します 指定された要素に対して、ブール値の結果を返します
isEmpty() HashSet かどうかをチェックします 空です
size() HashSet のサイズを返します
clear() HashSet からすべての要素を削除します

HashSet メソッドの詳細については、Java HashSet (Java の公式ドキュメント) にアクセスしてください。


ハッシュセットを使用する理由

Java では、HashSet 要素にランダムにアクセスする必要がある場合によく使用されます。これは、ハッシュ テーブル内の要素がハッシュ コードを使用してアクセスされるためです。

要素のハッシュコードは、ハッシュ テーブル内の要素を識別するのに役立つ一意の ID です。

HashSet 重複する要素を含めることはできません。したがって、各ハッシュ セット要素には一意のハッシュコードがあります。

注: HashSet が同期されていません。これは、複数のスレッドが同時にハッシュ セットにアクセスし、スレッドの 1 つがハッシュ セットを変更した場合です。次に、外部同期する必要があります。


Java

  1. Java 最終キーワード
  2. オペレーターの Java インスタンス
  3. Java 継承
  4. Java ネストされた静的クラス
  5. Java匿名クラス
  6. Java シングルトン クラス
  7. Java リフレクション
  8. Java アルゴリズム
  9. Java ObjectOutputStream クラス
  10. Javaジェネリック
  11. Java ファイル クラス