プログラミング 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】MySQLから取得した日付をフォーマット変換して表示する方法

MySQLからSELECTしてきた日付データ(DateTime型)を、 「yyyy年MM月dd日 hh時mm分ss秒」のフォーマットで表示する方法です。 コード [crayon-5fbd962ec97 …

no image

XSS対策の基本は入力値制限とサニタイジング(無害化)の2つ

XSS(クロスサイトスクリプティング)の基本的な対策は何をすればいいのかがぼんやりしている方向けの書いています。 対策方法はタイトルの通り、XSS(クロスサイトスクリプティング)対策の基本は入力値制限 …

pageEncodingとcontentTypeのcharsetの違い

pageEncodingとcontentTypeのcharsetは処理されるタイミングが異なります。 それによって文字化けの原因につながっているので、どのように設定すればいいかを解説していきます。 違 …

オブジェクト指向とは何なのかを簡単に説明してみる

オブジェクト指向とは何なのか? これを私の理解を元に、ごくごく簡単に説明してみたいと思います。   オブジェクト指向とは? オブジェクト指向とは何かを説明するために、 「オブジェクト」と「指 …

Facadeパターンの使い道をコードとクラス図で説明します。

Facadeパターンはどんな役に立つか? 簡単にいうと、複数の処理のまとめ役。 なので、依頼1つでいろんな仕事をやってくれる点で役に立つ。 Facadeパターンの要件 Facadeクラスはあくまでサブ …

記事を探す

SpringFramworkの良書

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

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