|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.util.AbstractCollection | +--java.util.AbstractSet | +--java.util.HashSet
このクラスは、ハッシュテーブル (実際には HashMap のインスタンス) を基にし、Set インタフェースを実装します。このクラスでは、セットの繰り返し順序について保証しません。特に、その順序を一定に保つことを保証しません。このクラスは、null 要素を許容します。
このクラスは、ハッシュ関数が複数のバケットで適切に要素を分散することを前提として、基本のオペレーション (add、remove、contains、および size) で時間一定の性能を提供します。セットの繰り返し処理では、HashSet のインスタンスのサイズ (要素数) と基となる HashMap のインスタンスの「容量」(バケット数) の合計に比例した時間が必要です。したがって、繰り返し処理の性能が重要な場合は、初期容量をあまり高く (負荷係数をあまり低く) 設定しないことが非常に重要です。
この実装は同期化されません。複数のスレッドが同時にセットにアクセスし、それらのスレッドの少なくとも 1 つがセットを変更する場合は、外部で同期をとる必要があります。通常、それはセットを自然にカプセル化するオブジェクトで同期をとることによって達成されます。そのようなオブジェクトがない場合には、Collections.synchronizedSet メソッドを使ってセットを「ラップ」します。これは、HashSet への偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
Set s = Collections.synchronizedSet(new HashSet(...));
このクラスの iterator メソッドによって返される反復子は「フェイルファスト」です。反復子が作成されたあとに、反復子独自の remove メソッド以外の方法でセットが変更された場合、反復子は ConcurrentModificationException をスローします。したがって、同時変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、速やかにかつクリーンに失敗します。
Collection
,
Set
,
TreeSet
,
Collections.synchronizedSet(Set)
,
HashMap
, 直列化された形式コンストラクタの概要 | |
HashSet()
新しい空のセットを作成します。 |
|
HashSet(Collection c)
指定されたコレクションの要素を格納する新しいセットを作成します。 |
|
HashSet(int initialCapacity)
新しい空のセットを作成します。 |
|
HashSet(int initialCapacity,
float loadFactor)
新しい空のセットを作成します。 |
メソッドの概要 | |
boolean |
add(Object o)
指定された要素がまだ存在しない場合に、その要素をセットに追加します。 |
void |
clear()
セットからすべての要素を削除します。 |
Object |
clone()
HashSet のインスタンスのシャローコピーを返します。 |
boolean |
contains(Object o)
セットが指定された要素を格納している場合に true を返します。 |
boolean |
isEmpty()
セットが要素を 1 つも格納していない場合に true を返します。 |
Iterator |
iterator()
セットの要素の反復子を返します。 |
boolean |
remove(Object o)
指定された要素が存在する場合に、その要素をセットから削除します。 |
int |
size()
セットの要素数 (基数) を返します。 |
クラス java.util.AbstractSet から継承したメソッド |
equals,
hashCode |
クラス java.util.AbstractCollection から継承したメソッド |
addAll,
containsAll,
removeAll,
retainAll,
toArray,
toArray,
toString |
クラス java.lang.Object から継承したメソッド |
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
コンストラクタの詳細 |
public HashSet()
public HashSet(Collection c)
public HashSet(int initialCapacity, float loadFactor)
initialCapacity
- ハッシュマップの初期容量loadFactor
- ハッシュマップの負荷係数public HashSet(int initialCapacity)
initialCapacity
- ハッシュテーブルの初期容量メソッドの詳細 |
public Iterator iterator()
ConcurrentModificationException
public int size()
public boolean isEmpty()
public boolean contains(Object o)
public boolean add(Object o)
o
- セットに追加される要素public boolean remove(Object o)
o
- セットから削除されるオブジェクト (そのオブジェクトが存在する場合)public void clear()
public Object clone()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |