JavaのHashSetは、の最も重要な側面の1つです。 。これは通常、一意の値を順序付けられていない方法で格納するために使用されます。 JavaでのHashSetに関するこの記事の媒体を通して、HashSetとは何か、そしてそれをアプリケーションでどのように使用できるかについての完全なウォークスルーを提供します。
この記事で取り上げるトピックは次のとおりです。
- JavaのHashSet
- JavaHashSetとHashMap
- HashSet階層
- java.util.HashSetクラスのコンストラクタ
- java.util.HashSetクラスのメソッド
- JavaプログラムでのHashSetの実装
まず、JavaのHashSetとは何かを理解することから始めましょう。
JavaのHashSet
java.util.HashSet クラス はJavaコレクションフレームワークのメンバーです。AbstractSetクラスを継承し、を実装しますセットする インターフェース 。一意の要素のコレクションを作成および保存するためのハッシュテーブルを暗黙的に実装します。 Hashtableは、HashSet内に情報を格納するためにハッシュメカニズムを使用するHashMapクラスのインスタンスに他なりません。
ハッシュは、情報コンテンツを、より一般的にハッシュコードとして知られている一意の値に変換するプロセスです。このハッシュコードは、キーに関連付けられたデータのインデックス作成に使用されます。情報キーをハッシュコードに変換するプロセス全体は、内部で実行されます。
ここで、JavaのHashSetをよりよく理解するために、その機能のいくつかをリストアップしましょう。
- JavaのHashSetは、重複する値を許可しません。
- null値を含めることができます。
- HashSetは、データを格納するための挿入順序に従わず、ハッシュコードを使用して内部の値にインデックスを付けます。
- それは非です 同期 これにより、自動的にスレッドセーフになります。
- HashSetクラスはCloneableとシリアル化可能なインターフェイス。
JavaでのHashSetとは正確に何であるかを理解したところで、この記事をさらに進めて、JavaでのHashMapとHashSetの違いをわかりやすく説明しましょう。
JavaHashSetとHashMap
HashSet | HashMap |
実装java.util。インターフェースの設定 | 実装java.util.Map |
データをオブジェクトとして保存します | キーと値のペアの形式でデータを格納します |
HashSetは、オブジェクトの初期化に1つのパラメーターのみを必要とします | オブジェクトの初期化には2つのパラメーター(キー、値)が必要です |
重複する要素を許可しません | 重複するキーは許可されませんが、重複する値を保存できます |
単一のnull値を許可します | 単一のnullキーと任意の数のnull値を許可します |
HashSetはadd()を使用しますデータを追加または保存する方法 | HashMapはデータを保存するためにput()メソッドを使用します |
HashMapとHashSetを明確に区別できたので、HashSetに再び焦点を当てて、さらに深く掘り下げてみましょう。この記事の次のセクションでは、JavaでのHashSetの完全な階層を紹介します。
JavaのHashSet階層
下の図からわかるように、HashSetクラスは、Setインターフェイスを実装します。 SetインターフェースはさらにCollectionインターフェースを継承し、最終的にIterableインターフェースを階層順に拡張します。
では、このHashSet in Javaの記事を進めて、さまざまなものをチェックしてみましょう。 コンストラクター このクラスでサポートされています。
java.util.HashSetクラスのコンストラクタ
ビルダー | 説明 |
HashSet() | これはHashSetクラスのデフォルトコンストラクタです |
HashSet(int容量) | このコンストラクターは、ハッシュセットの初期容量を初期化するために使用されます。新しい要素を追加すると、容量を動的に増やすことができます |
HashSet(int容量、float loadCapacity) | このコンストラクターは、負荷容量とともにハッシュセットの初期容量を初期化するために使用されます |
HashSet(コレクションc) | このコンストラクターは初期化に使用されますコレクションcの要素を使用して設定されたハッシュ |
これらは、のHashSetクラスの4つのコンストラクターでした。 。さまざまなものを見つけましょう JavaHashSetで定義されています。
java.util.HashSetクラスのメソッド
方法 | 説明 |
boolean add(Object obj) | このメソッドは、指定された要素が存在しない場合にのみ、指定された要素をHashSetに追加するのに役立ちます。 |
void clear() | このメソッドは、HashSetからすべての要素を削除するのに役立ちます |
オブジェクトclone() | このメソッドは、HashSet要素のクローンではなく、HashSetインスタンスの浅いコピーを返します。 |
boolean contains(Object o) | 渡された要素がHashSet内に存在する場合、このメソッドはtrueを返します |
ブールisEmpty() | HashSetが空の場合、このメソッドはtrueを返します |
イテレータiterator() | このメソッドは、HashSetに存在する要素のイテレータを返します |
boolean remove(Object o) | このメソッドは、指定された要素が存在する場合、HashSetから削除するのに役立ちます |
int size() | このメソッドは、HashSetに存在する要素の総数を返します |
上記のメソッドに加えて、JavaのHashSetクラスには そのスーパークラスから。
これらのメソッドを実装して、コーディングに足を踏み入れましょう。
JavaプログラムでのHashSetの実装
以下の例では、HashSetクラスによって提供されるいくつかのメソッドを実装しようとします。
import java.util.HashSet importjava.util。* public class SampleHashSet {public static void main(String [] args){// HashSetセットの作成eduCourses = new HashSet()// HashSetへの新しい要素の追加eduCourses.add ( 'ビッグデータ')eduCourses.add( 'Node.js')eduCourses.add( 'Java')eduCourses.add( 'Python')eduCourses.add( 'Blockchain')eduCourses.add( 'JavaScript')eduCourses。 add( 'Selenium')eduCourses.add( 'AWS')eduCourses.add( 'Machine Learning')eduCourses.add( 'RPA')//重複する要素の追加は無視されますeduCourses.add( 'Java')eduCourses.add ( 'RPA')System.out.println(eduCourses)// HashSetに特定の要素が含まれているかどうかを確認しますStringmyCourse = 'Node.js' if(eduCourses.contains(myCourse)){System.out.println(myCourse + 'はコースリストにあります。 ')} else {System.out.println(myCourse +'はコースリストにありません。 ')} //リストリストを使用したeduCoursesの並べ替えlist = new ArrayList(eduCourses)Collections.sort(list) // HashSet System.out.println( 'のソートされた要素を出力しますListを使用してソートされた順序でコースを印刷する: '+ list)// remove()を使用してHashSetからアイテムを削除するeduCourses.remove(' Python ')// HashSetアイテムを反復するSystem.out.println('削除後にコースリストを反復するPython: ')Iterator i = eduCourses.iterator()while(i.hasNext())System.out.println(i.next())// HashSetの別のオブジェクトを作成するHashSeteduNewCourses = new HashSet()eduNewCourses.add( 'Node.js')eduNewCourses.add( 'Python')eduNewCourses.add( 'Machine Learning')// HashSetからすべての新しい要素を削除しますeduCourses.removeAll(eduNewCourses)System.out.println( 'removeAll()を呼び出した後残りのメソッドコース: '+ eduCourses)//指定された条件に基づいて要素を削除するeduCourses.removeIf(str-> str.contains(' Java '))System.out.println(' removeIf()メソッドを呼び出した後: '+ eduCourses)// eduNewCoursesで指定されているeduCoursesから要素を削除しますeduCourses.retainAll(eduNewCourses)System.out.println( 'HashSet after' + 'retainAll()操作: '+ eduNewCourses)//セットで使用可能なすべての要素を削除しますeduCourses.clear()System.out.println(' clear()メソッドを呼び出した後: '+ eduCourses)}}
上記のコードを実行すると、以下の出力が得られます。
これで、この記事は終わりです。コンセプトを明確に保つことができたと思います。あなたはについてもっと学ぶことができます 私たちを通過することによって 。
Javaのデッドロックとは
JavaのHashSetとは何かを理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。
質問がありますか?この「JavaのHashSet」記事のコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。