目次へ

3. Set

3.1. java.util.Set, java.util.HashSet

「java.util.Set」は新しく登場したタイプのコレクションです。キーやインデックスとは関連付けずに値を記憶します。重複して同じ値を保持することはできません。オブジェクトが同じかどうかは、「Object」クラスの「equals」メソッドと「hashCode」メソッドで判定します。「equals」メソッドが「true」を返し、かつ「hashCode」メソッドが同じハッシュ値を返すとき、オブジェクトは同一と判断されます。

「Set」インタフェースを実装する代表的なクラスが「HashSet」です。以下は「Set」の主要なメソッドと使用例です。

boolean add(Object) 引数で指定されたオブジェクトがセットに含まれない場合、セットに追加されます。追加された場合「true」を返します。
boolean addAll(Collection) 引数で指定された要素それぞれについて、該当オブジェクトがセットに含まれない場合、セットに追加されます。一つでも要素が追加された場合「true」を返します。
boolean contains(Object) 引数で指定されたオブジェクトが含まれている場合に「true」を返します
boolean containsAll(Collection) 引数で指定された要素全てが、セットに含まれている場合に「true」を返します。
void clear() セットをクリアします(全ての要素を削除する)
boolean remove(Object) 引数で指定したオブジェクトを削除します。指定したオブジェクトがセット内にある場合「true」を返します。
boolean removeAll(Collection) 引数で指定された要素全てを削除します。指定した要素が1つでも含まれていた場合には、「true」を返します。
int size() 要素数を返します。
Object[] toArray(Object[]) 引数で指定した型の配列に、リストを変換して返します。
Iterator iterator() セット内の要素にアクセスするための「Iterator」を返します。
Set set = new HashSet();
set.add("japan");
set.add("china");
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
    String country = (String)iterator.next();
}

(実習課題1)

以下のコンソール・プログラムを作成しなさい。

  • 人間を表すクラスを作成し、それには「名前」「年齢」を管理する要素を持たせる事。
  • 「HashSet」に上記のクラスのインスタンスを複数挿入した後、「Iterator」を介して一覧を表示する事。
  • 同じインスタンスを複数挿入し、「Set」では重複して同じインスタンスが管理されない事を確認する事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp