重複要素のないコレクションで, 数学の [集合] に相当する:
Collection インタフェースを実装する
重複要素を保持できない
コレクション内のオブジェクトの順番を管理することができない
HashSet は, HashMap のインスタンスを基づく Set インタフェースを実装する. このクラスでは, セットの繰り返し順序について保証しない.
add: 指定された要素が既に Set に存在しなければその要素をセットする
clear: セットからすべての要素を削除する
contains: 指定された値がセットに含まれるかどうかを真偽値で返す
isEmpty: セットが空きであるかどうかを真偽値で返す
iterator: セットの要素の反復子を返す
remove: 指定した要素があればセットから削除する
size: セット内にある要素の数を返す
HashSetTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import java.util.HashSet;
public class HashSetTest{
public static void main(String[] args){
HashSet<Integer> hs = new HashSet<Integer>();
for(int i = 5; i <= 20; i++){
hs.add( new Integer(i) );
}
for(int i = 5; i <= 15; i++){
hs.add( new Integer(i) );
}
System.out.println( "HashSet Size: " + hs.size() );
System.out.println( "HashSet: " + hs );
System.out.println( hs.contains(10) );
System.out.println( hs.contains("10") );
System.out.println( hs.iterator() );
hs.add(10);
System.out.println( "HashSet Size: " + hs.size() );
hs.add(100);
System.out.println( "HashSet Size: " + hs.size() );
hs.add( new Integer("1000") ); // "1000" 文字列にしても大丈夫
System.out.println( "HashSet: " + hs );
System.out.println( "HashSet Size: " + hs.size() );
System.out.println( hs.iterator() );
}
}
|
HashSetTest.java の実行結果は:
[wtopia java.cf]$ java HashSetTest
HashSet Size: 16
HashSet: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 16, 19, 18, 20]
true
false
java.util.HashMap$KeyIterator@147ee05
HashSet Size: 16
HashSet Size: 17
HashSet: [100, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 1000, 16, 19, 18, 20]
HashSet Size: 18
java.util.HashMap$KeyIterator@15b9e68
HashSet はどのような順序で格納されるか保証されていないため, 出力も格納順序ではなくバラバラで出力されていると思う.
AccessHashSet.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.util.HashSet;
import java.util.Iterator;
public class AccessHashSet{
public static void main(String[] args){
HashSet<String> hs = new HashSet<String>();
hs.add("鈴木さん");
hs.add("中田さん");
hs.add("高橋さん");
hs.add("堀北さん");
hs.add("小林さん");
hs.add("趙飛さん");
Iterator it = hs.iterator();
System.out.println(it);
while( it.hasNext() ){
System.out.println( it.next() );
}
}
}
|
AccessHashSet.java の実行結果は:
[wtopia java.cf]$ java AccessHashSet
java.util.HashMap$KeyIterator@15b9e68
堀北さん
趙飛さん
鈴木さん
小林さん
中田さん
高橋さん