- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractSet<E>
-
- java.util.HashSet<E>
-
- 参数类型
-
Eこのセットが保持する要素の型
- 実装されているすべてのインターフェース
-
Serializable,Cloneable,Iterable<E>,Collection<E>,Set<E>
- 既知の直接サブクラス:
-
JobStateReasons,LinkedHashSet
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
此类实现Setインターフェース、ハッシュテーブルによって(実際にはHashMap实例)支持。 それはコレクションの反復順序を保証しません; 特に、順序が時間の経過とともに変わらないことは保証されません。 此类允许null元素。このクラスは基本的な操作を提供します(固定時間性能
add,remove,containsとsize)、ハッシュ関数が要素をバケット内に正しく分散すると仮定します。 このコレクションの反復にかかる時間は、...とHashSetインスタンスのサイズ(要素数)に加えてバッキングHashMapインスタンスの「容量」(バケット数)の合計に比例します。 因此,如果迭代性能很重要,则不要将初始容量设置得太高(或负载因子太低)非常重要。この実装は同期化されないことに注意してください。 複数のスレッドが同時にハッシュセットにアクセスし、少なくとも1つのスレッドがそのセットを変更した場合、必须外部で同期します。 これは通常、コレクションを自然にカプセル化する何らかのオブジェクト上で同期することによって実現されます。 そのようなオブジェクトが存在しない場合は、使用する必要があります
Collections.synchronizedSet方法“包装”该集合 。 これは、コレクションへの偶発のな同期されていないアクセスを防ぐために、作成時に行うのが最適です:Set s = Collections.synchronizedSet(new HashSet(...));このクラスの
iteratorメソッドが返すイテレータはフェイルファストの:イテレータの作成後、イテレータ自身の...による場合を除いて、そのセットが変更された場合remove方法之外,迭代器抛出ConcurrentModificationException。 したがって、並行変更の場合、イテレータは将来の不確定な時点で任意の非決定のな動作のリスクを冒すのではなく、迅速かつクリーンに失敗します。イテレータのフェイルファスト動作は保証されないことに注意してください。一般のに、同期されていない並行変更が存在する場合、厳格な保証をすることは不可能です。 フェイルファストイテレータはベストエフォート方式でスローされます。
ConcurrentModificationException。 したがって、この例外に依存してその正しさを保証するプログラムを作成することは誤りです:イテレータのフェイルファスト動作は、エラーを検出するためだけに使用すべきです。このクラスはJava Collections Frameworkのメンバー。
- 以下のバージョンから:
- 1.2
- 另请参见:
-
Collection,Set,TreeSet,HashMap, Serialized Form
-
-
コンストラクタの概要
构造方法 构造器 描述 HashSet()新しい空のセットを構築します; 支持HashMapインスタンスはデフォルトの初期容量(16)と負荷係数(0.75)を持ちます。HashSet(int initialCapacity)新しい空のセットを構築します; 支持HashMapインスタンスは、指定された初期容量とデフォルトの負荷係数(0.75)を持ちます。HashSet(int initialCapacity, float loadFactor)新しい空のセットを構築します; 支持HashMapインスタンスは、指定された初期容量と指定された負荷係数を持ちます。HashSet(Collection<? extends E> c)指定されたコレクション内の要素を含む新しいセットを構築します。
-
メソッドの概要
所有方法 インスタンスメソッド 具体的な方法 変数と型 方法 描述 booleanadd(E e)指定された要素がまだ存在しない場合は、このセットに追加します。voidclear()このセットからすべての要素を削除します。Objectclone()返回此HashSetインスタンスの浅いコピー:要素自体はクローンされません。booleancontains(Object o)このセットが指定された要素を含む場合、戻りますtrue。booleanisEmpty()如果此集合不包含任何元素,则返回true。Iterator<E>iterator()この set 内の要素のイテレータを返します。booleanremove(Object o)存在する場合、このセットから指定された要素を削除します。intsize()このコレクション内の要素数(基数)を返します。Spliterator<E>spliterator()このコレクション内の要素上に作成するlate-bindingと失败快速Spliterator。-
メソッドを宣言するクラス java.util.AbstractSet
equals, hashCode, removeAll
-
メソッドを宣言するクラス java.util.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
-
メソッドを宣言するインターフェース java.util.Collection
parallelStream, removeIf, stream, toArray
-
-
-
-
コンストラクタの詳細
-
HashSet
public HashSet()
新しい空のセットを構築します; 支持HashMapインスタンスはデフォルトの初期容量(16)と負荷係数(0.75)を持ちます。
-
HashSet
public HashSet(Collection<? extends E> c)
指定されたコレクション内の要素を含む新しいセットを構築します。HashMapデフォルトの負荷係数(0.75)を使用して作成され、初期容量は指定されたコレクション内の要素を格納するのに十分です。- 参数
-
c-cこのセットに配置される要素のコレクション - 异常
-
NullPointerException- 指定されたコレクションがnullの場合
-
HashSet
public HashSet(int initialCapacity, float loadFactor)新しい空のセットを構築します; 后备HashMapインスタンスは、指定された初期容量と指定された負荷係数を持ちます。- 参数
-
initialCapacityハッシュマップの初期容量 -
loadFactorハッシュマップの負荷係数 - 异常
-
IllegalArgumentException初期容量がゼロ未満であるか、負荷係数が非正である場合
-
HashSet
public HashSet(int initialCapacity)
新しい空のセットを構築します; 支持HashMapインスタンスは、指定された初期容量とデフォルトの負荷係数(0.75)を持ちます。- 参数
-
initialCapacityハッシュテーブルの初期容量 - 异常
-
IllegalArgumentException初期容量が0未満の場合
-
-
メソッドの詳細
-
iterator
public Iterator<E> iterator()
この set 内の要素のイテレータを返します。 元素按特定顺序返回。- Specified by:
-
iteratorインターフェースでCollection<E> - Specified by:
-
iteratorインターフェースでIterable<E> - Specified by:
-
iteratorin interfaceSet<E> - Specified by:
-
iterator类AbstractCollection<E> - 结果
- このセット内の要素の反復子
- 另请参见:
-
ConcurrentModificationException
-
size
public int size()
このコレクション内の要素数(基数)を返します。
-
isEmpty
public boolean isEmpty()
如果此集合不包含任何元素,则返回true。- Specified by:
-
isEmptyインターフェースでCollection<E> - Specified by:
-
isEmptyインターフェースでSet<E> - 重写:
-
isEmpty类AbstractCollection<E> - 结果
-
trueこのセットが要素を含まない場合
-
contains
public boolean contains(Object o)
このセットが指定された要素を含む場合、戻りますtrue。 更正式地说,返回trueこのセットに含まれる要素が...である場合に限りe,使得Objects.equals(o, e)。- Specified by:
-
containsインターフェースでCollection<E> - Specified by:
-
containsインターフェースでSet<E> - 重写:
-
containsクラス内AbstractCollection<E> - 参数
-
oこのセット内での存在をテストする要素 - 结果
-
trueこのセットが指定された要素を含む場合
-
add
public boolean add(E e)
指定された要素がまだ存在しない場合は、このセットに追加します。 より正式には、指定された要素をeこの set は、set に要素が含まれていない場合。e2使得Objects.equals(e, e2)。 如果此set已包含该元素,则调用将保持set不变并返回false。- Specified by:
-
addインターフェースでCollection<E> - Specified by:
-
addインターフェースでSet<E> - 重写:
-
addクラス内AbstractCollection<E> - 参数
-
eこのセットに追加される要素 - 结果
-
trueセットが指定された要素を含む場合
-
remove
public boolean remove(Object o)
存在する場合、このセットから指定された要素を削除します。 更正式地,删除元素e,使得Objects.equals(o, e)このコレクションがそのような要素を含む場合。 如果此集合包含元素,则返回true(或等效地,如果此集合因调用而更改)。 (一旦调用返回,该集合将不包含该元素。)- Specified by:
-
removeインターフェースでCollection<E> - Specified by:
-
removeインターフェースでSet<E> - 重写:
-
remove类AbstractCollection<E> - 参数
-
oこのセットから削除するオブジェクト(存在する場合) - 结果
-
trueセットが指定された要素を含む場合
-
clear
public void clear()
このセットからすべての要素を削除します。 この呼び出しから戻った後、そのセットは空になります。- Specified by:
-
clearインターフェースでCollection<E> - Specified by:
-
clearインターフェースでSet<E> - 重写:
-
clear类AbstractCollection<E>
-
clone
public Object clone()
返回此HashSetインスタンスの浅いコピー:要素自体はクローンされません。
-
spliterator
public Spliterator<E> spliterator()
このコレクション内の要素上に作成するlate-bindingと失败快速Spliterator。Spliterator报告Spliterator.SIZEDとSpliterator.DISTINCT。 オーバーライドする実装は、他の特性値のレポートを文書化する必要があります。- Specified by:
-
spliteratorインターフェースでCollection<E> - Specified by:
-
spliteratorインターフェースでIterable<E> - Specified by:
-
spliteratorインターフェースでSet<E> - 结果
-
a
Spliteratorこのコレクション内の要素 - 以下のバージョンから:
- 1.8
-
-