logo

Java ハッシュセット

Java HashSet クラス階層

Java HashSet クラスは、ストレージにハッシュ テーブルを使用するコレクションを作成するために使用されます。 AbstractSet クラスを継承し、Set インターフェイスを実装します。

Java HashSet クラスに関する重要な点は次のとおりです。

  • HashSet は、と呼ばれるメカニズムを使用して要素を保存します。 ハッシュ化。
  • HashSet には一意の要素のみが含まれます。
  • HashSet では null 値が許可されます。
  • HashSet クラスは非同期です。
  • HashSet は挿入順序を維持しません。ここでは、要素はハッシュコードに基づいて挿入されます。
  • HashSet は、検索操作に最適なアプローチです。
  • HashSet の初期デフォルト容量は 16、負荷率は 0.75 です。

リストとセットの違い

リストには重複した要素を含めることができますが、Set には一意の要素のみが含まれます。

HashSetクラスの階層

HashSet クラスは、Set インターフェイスを実装する AbstractSet クラスを拡張します。 Set インターフェイスは、Collection インターフェイスと Iterable インターフェイスを階層順に継承します。


HashSet クラス宣言

java.util.HashSet クラスの宣言を見てみましょう。

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Java HashSet クラスのコンストラクター

SN コンストラクタ 説明
1) ハッシュセット() これは、デフォルトの HashSet を構築するために使用されます。
2) HashSet(int 容量) これは、ハッシュ セットの容量を指定された整数値の容量に初期化するために使用されます。要素が HashSet に追加されると、容量は自動的に増加します。
3) HashSet(int 容量、float ロードファクター) これは、ハッシュ セットの容量を、指定された整数値の容量と指定された負荷係数に初期化するために使用されます。
4) ハッシュセット(コレクションc) これは、コレクション c の要素を使用してハッシュ セットを初期化するために使用されます。

Java HashSet クラスのメソッド

Java HashSet クラスの各種メソッドは以下のとおりです。

SN 修飾子とタイプ 方法 説明
1) ブール値 add(E e) 指定された要素がまだ存在しない場合に、このセットに追加するために使用されます。
2) 空所 クリア() セットからすべての要素を削除するために使用されます。
3) 物体 クローン() これは、この HashSet インスタンスの浅いコピーを返すために使用されます。要素自体は複製されません。
4) ブール値 contains(オブジェクト o) このセットに指定された要素が含まれている場合に true を返すために使用されます。
5) ブール値 isEmpty() このセットに要素が含まれていない場合に true を返すために使用されます。
6) イテレーター イテレータ() このセット内の要素に対する反復子を返すために使用されます。
7) ブール値 削除(オブジェクトo) 指定された要素が存在する場合、このセットからそれを削除するために使用されます。
8) 整数 サイズ() セット内の要素の数を返すために使用されます。
9) スプリッテレーター スプリッテレータ() これは、セット内の要素に対して遅延バインディングおよびフェイルファストの Spliterator を作成するために使用されます。

Java ハッシュセットの例

HashSet の簡単な例を見てみましょう。要素は順序付けされていないコレクション内で反復されることに注意してください。

 import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Five One Four Two Three 

重複要素を無視する Java HashSet の例

この例では、HashSet が重複要素を許可していないことがわかります。

 import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 
 Ajay Vijay Ravi 

要素を削除する Java HashSet の例

ここでは、要素を削除するさまざまな方法を見ていきます。

 import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } } 
 An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: [] 

別のコレクションからの Java HashSet

 import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Vijay Ravi Gaurav Ajay 

Java ハッシュセットの例: 書籍

設定する書籍を追加し、すべての書籍を印刷する HashSet の例を見てみましょう。

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

出力:

 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6 

あなたも好きかも:

Java での HashSet の仕組み