OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:684
区分:プログラム  |  分類:Java  |  最終更新日:2015/07/09
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【Java】HashSetの基本操作
関連タグ:Java, コレクション, 配列, Map, HashSet
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 14,724
Java関連技術まとめ > 【Java】HashSetの基本操作

java.util.HashSetはハッシュを用いたjava.util.Setインターフェースの実装クラスになります。値の重複を許可しない集合を管理するためのクラスで、各要素の順序は保持しません。ただし、null値を設定することはできます。ListやMapとは違い、値に対してインデックスやキーを持たないため、主に集合に対して任意の値が含まれているかどうかを調べるといった使い方をします。

 

HashSetクラスの特長と主要メソッド

【クラスの特長】

クラス要素の重複nullの挿入自動ソート
java.util.HashSet 不可 なし

 

【クラスの主要メソッド】

戻り値メソッド説明
boolean add(Object e)

セットに要素eを追加します。

要素eが既にセット内に存在する場合はfalseを返します。

void clear() セットの全ての要素を削除します。
boolean contains(Object e) セットに要素eが含まれているかを判定します。
boolean isEmpty() セットが空かどうかを判定します。
boolean remove(Object e)

要素eをセットから削除します。

要素eがセット内に存在しない場合はfalseを返します。

int size()

セットの要素数を返します。

HashSetを生成する

HashSetオブジェクトはnew演算子を使用して以下のように生成します。

 

【JDK1.5以降】

HashSet<型> 変数名 = new HashSet<型>();

 

上記方法での生成は、ジェネリクス機能が導入されたJ2SE5.0(JDK1.5)以降に可能です。それ以前の古いバージョンでは、以下の方法で生成します。

 

HashSet 変数名 = new HashSet();

HashSetにデータを追加する

HashSetオブジェクトにデータを追加する場合は、addメソッドを使用します。

 

HashSet<String> hs = new HashSet<String>();

hs.add("Google");
hs.add("Apple");
hs.add("Microsoft");

 

addメソッドはセットに該当の要素が含まれていない場合に要素を追加します。上記例ではHashSetオブジェクトに3つの要素が追加されますが、順序は保持されませんので、要素は必ずしも追加した順とはなりません。

HashSetに任意のデータが含まれているか調べる

HashSetオブジェクトに任意のデータが含まれているかどうかを調べる場合は、containsメソッドを使用します。

 

if (hs.contains("Apple")) {
    System.out.println("セットにAppleは含まれます。");
}

 

containsメソッドはセットに指定の要素が含まれている場合にtrueを返します。

HashSetのデータを削除する

HashSetオブジェクトのデータを削除する場合は、removeメソッドを使用します。

 

hs.remove("Apple");

 

removeメソッドはセットに該当の要素が含まれている場合に要素を削除します。指定の要素が含まれていない場合はfalseを返します。

サンプルプログラム

以下サンプルではHashSetに複数の要素を格納し、格納した要素を標準出力に出力します。

 

import java.util.HashSet;

public static void main(String[] args) {

    HashSet<String> hs = new HashSet<String>();

    hs.add("Java");
    hs.add("C#");
    hs.add("PHP");

    for (String val : hs){
        System.out.println(val);
    }
}

【実行結果】

PHP
C#
Java
関連記事
外部リンク
- 記事検索 -