- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractSet<E>
-
- java.util.HashSet<E>
-
- tipo de parámetro
-
ETipo de elementos que mantiene este conjunto
- Todas las interfaces implementadas
-
Serializable,Cloneable,Iterable<E>,Collection<E>,Set<E>
- Subclases directas conocidas:
-
JobStateReasons,LinkedHashSet
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
Esta clase implementaSetla interfaz, respaldada por una tabla hash (en realidad,HashMapuna instancia). No garantiza el orden de iteración de la colección; En particular, no garantiza que el orden permanezca constante con el tiempo. Esta clase permitenullelementos.Esta clase ofrece las operaciones básicas (rendimiento en tiempo constante
add,remove,containsysize), asumiendo que la función hash dispersa los elementos correctamente entre los cubos. El tiempo necesario para iterar esta colección es proporcional aHashSetla suma del tamaño de la instancia (número de elementos) yHashMapla capacidad de la instancia de respaldo (número de cubos). Por lo tanto, si el rendimiento de la iteración es importante, es muy importante no establecer la capacidad inicial demasiado alta (o el factor de carga demasiado bajo).Tenga en cuenta que esta implementación no está sincronizada. Si varios hilos acceden al mismo tiempo al conjunto hash, y al menos un hilo lo modifica, entoncesdebesincronizarse externamente. Esto se logra normalmente sincronizando sobre algún objeto que encapsule naturalmente el conjunto. Si no existe tal objeto, entonces se debe usar
Collections.synchronizedSetEl método «envuelve» elColección 。 Esto es mejor hacerlo en el momento de la creación, para evitar el acceso accidental no sincronizado al conjunto:Set s = Collections.synchronizedSet(new HashSet(...));de esta clase
iteratorLos iteradores devueltos por los métodos sonde fallo rápido: Si el conjunto se modifica en cualquier momento después de crear el iterador, excepto a través de su propioremovemétodo, el iterador lanzaConcurrentModificationException。 Por lo tanto, en caso de modificación concurrente, el iterador falla rápida y limpiamente, en lugar de arriesgarse a un comportamiento arbitrario, no determinista, en un momento futuro incierto.Tenga en cuenta que el comportamiento de fallo rápido de los iteradores no puede garantizarse, ya que, en general, no es posible hacer ninguna garantía estricta en presencia de modificaciones concurrentes no sincronizadas. Los iteradores de fallo rápido lanzan excepciones de mejor esfuerzo.
ConcurrentModificationException。 Por lo tanto, es incorrecto escribir programas que dependan de esta excepción para garantizar su corrección:El comportamiento de fallo rápido de los iteradores debe utilizarse solo para detectar errores.Esta clase esJava Collections Frameworkmiembro de.
- Desde la versión:
- 1.2
- Véase también:
-
Collection,Set,TreeSet,HashMap, Serialized Form
-
-
Resumen de constructores
Método constructor Constructor Descripción HashSet()Construye un nuevo conjunto vacío; AdmiteHashMapLa instancia tiene una capacidad inicial predeterminada (16) y un factor de carga predeterminado (0.75).HashSet(int initialCapacity)Construye un nuevo conjunto vacío; AdmiteHashMapLa instancia tiene la capacidad inicial especificada y un factor de carga predeterminado (0.75).HashSet(int initialCapacity, float loadFactor)Construye un nuevo conjunto vacío; AdmiteHashMapLa instancia tiene la capacidad inicial especificada y el factor de carga especificado.HashSet(Collection<? extends E> c)Construye un nuevo conjunto que contiene los elementos de la colección especificada.
-
Resumen de métodos
Todos los métodos Método de instancia Método específico Variables y tipos Método Descripción booleanadd(E e)Si el elemento especificado aún no está presente, lo añade a este conjunto.voidclear()Elimina todos los elementos de este conjunto.Objectclone()Devuelve esteHashSetCopia superficial de la instancia: los elementos en sí no se clonan.booleancontains(Object o)Si este conjunto contiene el elemento especificado, devuelvetrue。booleanisEmpty()Si este conjunto no contiene ningún elemento, devuelvetrue。Iterator<E>iterator()Devuelve un iterador sobre los elementos de este conjunto.booleanremove(Object o)Si está presente, elimina el elemento especificado de este conjunto.intsize()Devuelve el número de elementos de este conjunto (cardinalidad).Spliterator<E>spliterator()Crea sobre los elementos de este conjuntolate-bindingyfail-fastSpliterator。-
Clase que declara el método java.util.AbstractSet
equals, hashCode, removeAll
-
Clase que declara el método java.util.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
-
Clase que declara el método java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Interfaz que declara el método java.util.Collection
parallelStream, removeIf, stream, toArray
-
-
-
-
Detalles del constructor
-
HashSet
public HashSet()
Construye un nuevo conjunto vacío; AdmiteHashMapLa instancia tiene una capacidad inicial predeterminada (16) y un factor de carga predeterminado (0.75).
-
HashSet
public HashSet(Collection<? extends E> c)
Construye un nuevo conjunto que contiene los elementos de la colección especificada.HashMapCreado con un factor de carga predeterminado (0.75) y una capacidad inicial suficiente para contener los elementos de la colección especificada.- Parámetros
-
c-cLa colección cuyos elementos se colocan en este conjunto - Excepciones
-
NullPointerException- Si la colección especificada es null
-
HashSet
public HashSet(int initialCapacity, float loadFactor)Construye un nuevo conjunto vacío; de respaldoHashMapLa instancia tiene la capacidad inicial especificada y el factor de carga especificado.- Parámetros
-
initialCapacity- Capacidad inicial del mapa hash -
loadFactor- Factor de carga del mapa hash - Excepciones
-
IllegalArgumentExceptionSi la capacidad inicial es menor que cero, o el factor de carga no es positivo
-
HashSet
public HashSet(int initialCapacity)
Construye un nuevo conjunto vacío; AdmiteHashMapLa instancia tiene la capacidad inicial especificada y un factor de carga predeterminado (0.75).- Parámetros
-
initialCapacity- Capacidad inicial de la tabla hash - Excepciones
-
IllegalArgumentException- Si la capacidad inicial es menor que cero
-
-
Detalles del método
-
iterator
public Iterator<E> iterator()
Devuelve un iterador sobre los elementos de este conjunto. Los elementos se devuelven en un orden específico.- Specified by:
-
iteratorEn la interfazCollection<E> - Specified by:
-
iteratorEn la interfazIterable<E> - Specified by:
-
iteratorin interfaceSet<E> - Specified by:
-
iteratorClaseAbstractCollection<E> - Resultado
- Iterador sobre los elementos de este conjunto
- Véase también:
-
ConcurrentModificationException
-
size
public int size()
Devuelve el número de elementos de este conjunto (cardinalidad).
-
isEmpty
public boolean isEmpty()
Si este conjunto no contiene ningún elemento, devuelvetrue。- Specified by:
-
isEmptyEn la interfazCollection<E> - Specified by:
-
isEmptyEn la interfazSet<E> - Sobrescribe:
-
isEmptyClaseAbstractCollection<E> - Resultado
-
trueSi este conjunto no contiene ningún elemento
-
contains
public boolean contains(Object o)
Si este conjunto contiene el elemento especificado, devuelvetrue。 Más formalmente, devuelvetruesi y solo si este conjunto contiene el elementoe, tal queObjects.equals(o, e)。- Specified by:
-
containsEn la interfazCollection<E> - Specified by:
-
containsEn la interfazSet<E> - Sobrescribe:
-
containsEn la claseAbstractCollection<E> - Parámetros
-
oEl elemento cuya presencia en esta colección se va a probar - Resultado
-
trueSi este conjunto contiene el elemento especificado
-
add
public boolean add(E e)
Si el elemento especificado aún no está presente, lo añade a este conjunto. Más formalmente, el elemento especificadoeeste conjunto, si el conjunto no contiene el elementoe2tal queObjects.equals(e, e2)。 Si este conjunto ya contiene el elemento, la llamada deja el conjunto sin cambios y devuelvefalse。- Specified by:
-
addEn la interfazCollection<E> - Specified by:
-
addEn la interfazSet<E> - Sobrescribe:
-
addEn la claseAbstractCollection<E> - Parámetros
-
e- Elemento a agregar a este conjunto - Resultado
-
trueSi este conjunto no contiene todavía el elemento especificado
-
remove
public boolean remove(Object o)
Si está presente, elimina el elemento especificado de este conjunto. Más formalmente, eliminar elementose, tal queObjects.equals(o, e), si esta colección contiene tales elementos. Si esta colección contiene elementos, devuelvetrue(o equivalentemente, si este conjunto se modifica debido a la llamada). (Una vez que la llamada regresa, el conjunto ya no contendrá este elemento.)- Specified by:
-
removeEn la interfazCollection<E> - Specified by:
-
removeEn la interfazSet<E> - Sobrescribe:
-
removeClaseAbstractCollection<E> - Parámetros
-
oEl objeto que se va a eliminar de esta colección, si existe - Resultado
-
trueSi el conjunto contiene el elemento especificado
-
clear
public void clear()
Elimina todos los elementos de este conjunto. Después de esta llamada, el conjunto quedará vacío.- Specified by:
-
clearEn la interfazCollection<E> - Specified by:
-
clearEn la interfazSet<E> - Sobrescribe:
-
clearClaseAbstractCollection<E>
-
clone
public Object clone()
Devuelve esteHashSetCopia superficial de la instancia: los elementos en sí no se clonan.
-
spliterator
public Spliterator<E> spliterator()
Crea sobre los elementos de este conjuntolate-bindingyfail-fastSpliterator。SpliteratorInformaSpliterator.SIZEDySpliterator.DISTINCT。 Las implementaciones que sobrescriban deben documentar los informes de otros valores de características.- Specified by:
-
spliteratorEn la interfazCollection<E> - Specified by:
-
spliteratorEn la interfazIterable<E> - Specified by:
-
spliteratorEn la interfazSet<E> - Resultado
-
a
SpliteratorLos elementos en este conjunto - Desde la versión:
- 1.8
-
-