- java.lang.Object
- java.util.AbstractCollection <E>
- java.util.AbstractSet <E>
- java.util.HashSet<E>
- Paramètres de type
E- Type des éléments maintenus par cet ensemble. Toutes les interfaces implémentées
Serializable,Cloneable,Iterable<E>,Collection<E>,Set<E>
- Sous-classes directes connues :
JobStateReasons,LinkedHashSet
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
Cette classe implémenteSetl'interface, avec un support par une table de hachage (en fait desHashMapinstances). Elle ne garantit pas l'ordre d'itération de l'ensemble. En particulier, elle ne garantit pas que cet ordre reste constant dans le temps. Cette classe autorisenullles éléments. Cette classe offre des performances en temps constant pour les opérations de base (add,remove,contains和size), en supposant que la fonction de hachage disperse correctement les éléments dans les buckets. L'itération de cet ensemble demande un temps proportionnel à la somme de la taille de l'instanceHashSet(nombre d'éléments) et de la « capacité » de l'instanceHashMapsous-jacente (nombre de buckets). Donc, si les performances d'itération comptent, évitez de fixer une capacité initiale trop élevée (ou un facteur de charge trop bas).Notez que cette implémentation n'est pas synchronisée. Si plusieurs threads accèdent simultanément à un hash set et qu'au moins un thread le modifie, la synchronisation doit se faire en externe. On y parvient généralement en synchronisant sur un objet qui encapsule naturellement l'ensemble. Si un tel objet n'existe pas, utilisez la méthode
Collections.synchronizedSetpour « envelopper » l'ensemble. Faites-le de préférence à la création, pour éviter tout accès non synchronisé accidentel à l'ensemble :Set s = Collections.synchronizedSet(new HashSet(...));L'itérateur renvoyé par la méthode
iteratorde cette classe est en échec rapide : si l'ensemble est modifié à tout moment après la création de l'itérateur, sauf via la méthoderemovepropre de l'itérateur, celui-ci lèveConcurrentModificationException. Ainsi, face à une modification concurrente, l'itérateur échoue vite et proprement, au lieu de risquer un comportement arbitraire et non déterministe à un moment indéterminé.Veuillez noter que le comportement de défaillance rapide des itérateurs n'est pas garanti. En général, en présence de modifications concurrentes non synchronisées, aucune garantie stricte n'est possible. Les itérateurs à défaillance rapide lèvent l'exception de leur mieux.
ConcurrentModificationExceptionau mieux. Donc, écrire un programme qui dépend de cette exception pour garantir sa correction est une erreur : le comportement d'échec rapide des itérateurs sert uniquement à détecter des bogues.- Depuis la version : 1.2 Voir aussi :
Collection,Set,TreeSet,HashMap, Serialized Form
-
-
构造方法摘要
Constructeur Description HashSet()Construit un nouvel ensemble vide ; l'instanceHashMapsous-jacente a une capacité initiale par défaut (16) et un facteur de charge par défaut (0.75).HashSet(int initialCapacity)Construit un nouvel ensemble vide ; l'instanceHashMapsous-jacente a la capacité initiale spécifiée et le facteur de charge par défaut (0.75).HashSet(int initialCapacity, float loadFactor)Construit un nouvel ensemble vide ; l'instanceHashMapsous-jacente a la capacité initiale spécifiée et le facteur de charge spécifié.HashSet(Collection<? extends E> c)Construit un nouvel ensemble contenant les éléments de la collection spécifiée.
-
方法摘要
Toutes les méthodes Méthodes d'instance Méthodes concrètes Type et variable Méthode Description booleanadd(E e)Ajoute l'élément spécifié à cet ensemble s'il n'y figure pas déjà.voidclear()Supprime tous les éléments de cet ensemble.Objectclone()Renvoie une copie superficielle de cetteHashSetinstance : les éléments eux-mêmes ne sont pas clonés.booleancontains(Object o)Renvoie true si cet ensemble contient l'élément spécifié.true。booleanisEmpty()Si cette collection ne contient aucun élément, la méthode renvoie true.true。Iterator<E>iterator()Retourne un itérateur sur les éléments de ce set.booleanremove(Object o)Si l'élément spécifié existe, il est retiré de cet ensemble.intsize()Retourne le nombre d'éléments (la cardinalité) de cette collection.Spliterator<E>spliterator()Crée des liaisons tardives (late-binding) et un comportement fail-fast sur les éléments de cette collection.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()
Construire un nouvel ensemble vide ; pris en chargeHashMapL'instance possède une capacité initiale par défaut (16) et un facteur de charge (0.75).
-
HashSet
public HashSet(Collection<? extends E> c)
Construit un nouvel ensemble contenant les éléments de l'ensemble spécifié.HashMapCréé avec le facteur de charge par défaut (0.75) et une capacité initiale suffisante pour contenir les éléments de la collection spécifiée.- Paramètres
c-cException lors de l'ajout d'un élément à cette collectionNullPointerException- Si la collection spécifiée est null
-
HashSet
public HashSet(int initialCapacity, float loadFactor)Construire un nouvel ensemble vide ; solution de repliHashMapL'instance possède la capacité initiale spécifiée et le facteur de charge spécifié.- Paramètres
initialCapacity- Capacité initiale de la table de hachageloadFactor- Anomalie du facteur de charge de la table de hachageIllegalArgumentException- Si la capacité initiale est inférieure à zéro, ou si le facteur de charge n'est pas positif
-
HashSet
public HashSet(int initialCapacity)
Construire un nouvel ensemble vide ; pris en chargeHashMapL'instance possède la capacité initiale spécifiée et le facteur de charge par défaut (0,75).- Paramètres
initialCapacity- Capacité initiale de la table de hachage : exceptionIllegalArgumentException- Si la capacité initiale est inférieure à zéro
-
-
方法详细信息
-
iterator
public Iterator<E> iterator()
Retourne un itérateur sur les éléments de ce set. Les éléments sont retournés dans un ordre spécifique.- Specified by:
iterator在界面Collection<E>- Specified by:
iterator在界面Iterable<E>- Specified by:
iteratorin interfaceSet<E>- Specified by:
iterator类AbstractCollection<E>- Résultat Un itérateur sur les éléments de cette collection Voir aussi :
ConcurrentModificationException
-
size
public int size()
Retourne le nombre d'éléments de cette collection (cardinalité).
-
isEmpty
public boolean isEmpty()
Retourne true si cette collection ne contient aucun élémenttrue。- Specified by:
isEmpty在界面Collection<E>- Specified by:
isEmpty在界面Set<E>- Remplace :
isEmpty类AbstractCollection<E>- Résultat
trueSi cette collection ne contient aucun élément
-
contains
public boolean contains(Object o)
Retourne true si ce set contient l'élément spécifiétrue. Plus formellement, retourne truetruesi et seulement si ce set contient un élémente,使得Objects.equals(o, e)。- Specified by:
contains在界面Collection<E>- Specified by:
contains在界面Set<E>- Remplace :
contains在类AbstractCollection<E>- Paramètres
o- Élément dont la présence dans cet ensemble doit être testée Résultattruetrue si cet ensemble contient l'élément spécifié
-
add
public boolean add(E e)
Ajoute l'élément spécifié à cet ensemble s'il n'est pas déjà présent. Plus formellement, ajoute l'élément spécifiéee à cet ensemble si l'ensemble ne contient aucun élémente2使得Objects.equals(e, e2). Si cet ensemble contient déjà l'élément, l'appel laisse l'ensemble inchangé et retournefalse。- Spécifié par :
add在界面Collection<E>- Spécifié par :
add在界面Set<E>- Redéfini :
add在类AbstractCollection<E>- Paramètres
e- Élément à ajouter à cet ensemble Résultattruetrue si cet ensemble ne contenait pas déjà l'élément spécifié
-
remove
public boolean remove(Object o)
Supprime l'élément spécifié de cet ensemble s'il est présent. Plus formellement, supprime un élémente,使得Objects.equals(o, e), si cet ensemble contient un tel élément. Retourne true si cet ensemble contenait l'élémenttrue(ou de manière équivalente, si cet ensemble a changé à la suite de l'appel). (L'ensemble ne contiendra plus cet élément une fois l'appel terminé.)- Spécifié par :
remove在界面Collection<E>- Spécifié par :
remove在界面Set<E>- Redéfini :
remove类AbstractCollection<E>- Paramètres
o- Objet à supprimer de cet ensemble, s'il est présent Résultattruetrue si cet ensemble contenait l'élément spécifié
-
clear
public void clear()
Supprime tous les éléments de cet ensemble. L'ensemble sera vide après le retour de cet appel.- Spécifié par :
clear在界面Collection<E>- Spécifié par :
clear在界面Set<E>- Redéfini :
clear类AbstractCollection<E>
-
clone
public Object clone()
Retourne une copie superficielle de cetteHashSetinstance : les éléments eux-mêmes ne sont pas clonés.
-
spliterator
public Spliterator<E> spliterator()
Crée un Spliterator à liaison tardive et à défaillance rapideSpliteratorsur les éléments de cette collection.SpliteratorSignaleSpliterator.SIZEDetSpliterator.DISTINCT. Les implémentations qui substituent doivent documenter les valeurs de caractéristiques supplémentaires signalées.- Spécifié par :
spliterator在界面Collection<E>- Spécifié par :
spliterator在界面Iterable<E>- Spécifié par :
spliterator在界面Set<E>- Résultat a
Spliteratorsur les éléments de cette collection Depuis la version : 1.8
-
-