プログラミング Java

【Java】HashSetの使い方(順序なしSet)

投稿日:2020年6月20日 更新日:

HashSetの使い方をまとめました。
HashSetに関する使い方のサイトは他にもありますが、
それらのサイトには書かれていないメソッドについても書いてあります。

HashSetの基本情報

・重複する値を持たない。
・順序は保証しない。
・Nullは値として保持できる。

使い道

和集合の作成
集合A[1, 2, 3]
集合B[2, 4, 6]
A ∩ B = [1, 2, 3, 4, 6](∩ は和集合の記号です)
[2]は重複しているので、1つになります。

積集合も求めることはできます。
retainAllメソッドで可能ですので後述します。

使い方

追加

値の追加(addメソッド)

Collectionの追加(addAllメソッド)

Colection型であれば追加できます。(もちろん型が一致する必要はありますが)
ここではArrayListとHashMapを追加させています。

削除

値の全消去(clearメソッド)

値の削除(removeメソッド)

対象のCollectionを削除(removeAllメソッド)

条件付き削除(removeIfメソッド)

判定

等価判定(equalsメソッド)

要素数ゼロ判定(isEmptyメソッド)

値を含むか判定(containsメソッド)

指定したCollectionの値を含むか判定(containsAllメソッド)

引数に与えるのはColection型であればOKです。
ここではSet以外でも動作することを確認するため、ArrayListを判定対象のColectionとしています。

繰り返し

拡張For文

Iterator

各要素に対して指定されたアクションを実行(forEachメソッド)

ハッシュ・コード値(hashCodeメソッド)

要素数(sizeメソッド)

積集合(retainAllメソッド)

2つのCollectionにおいて共通要素だけにします。
対象はCollection型を指定できるため、ArrayListやHashMapとの共通要素を抽出することも可能です。

他の参考サイト

ITSakura – Java HashSetの使い方のサンプル
TechAcademy – JavaのHashSetクラスの使い方を現役エンジニアが解説【初心者向け】
Javaコード入門 – HashSet

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

Javaで数値(int)を部分一致判定する

文字列に変換して判定します。 <方法> ・matchesメソッドで正規表現使う。 ・containsメソッドに判定文字を渡す。 また、メソッドに切り出すと、intを変換する処理を個別に書かなくてよくな …

SpringでNotNullなどのバリデーションが効かないときの対処法

状況 フィールドに入っている値は空文字なのに、 @NotNull, @NotEmpty, @NotBlankでエラーとして検知されない。 (BindingResultでhasErroe=0件となる) …

Jacksonで日付がずれる場合、Timezone設定を直す

現象 JacksonでCSV出力する際、日付がズレて出力される。   原因 タイムゾーンの設定がTokyo/Asiaになっていない。   対策 application.proper …

【Spring】バリデーション時に、入力値を保持する方法

登録画面で「登録」ボタンを押した後、 バリデーションで引っ掛かってエラーになっても 入力内容を画面に保持して置く方法についてです。 テンプレートエンジンは、Tymeleafを使用しています。 方法とし …

【Laravel】SQLの確認はenableQueryLogを使う

SQLのデバッグのために、SQLとバインドされた値を確認したいことがあります。 その時に使える方法として、よく提示されるのは以下の2つです。 1.enableQueryLogメソッドとgetQuery …

記事を探す

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。