3. Set
ユーティリティ 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」では重複して同じインスタンスが管理されない事を確認する事。