Por favor, lembre-se que esta tradução da especificação é resultado de um projeto da comunidade java.net( https://jdk5-api-pt-br.dev.java.net/). A versão oficial da especificação é a versão na língua inglesa que pode ser encontrada em http://java.sun.com/j2se/1.5.0/docs/api/. Em caso de divergências, a versão predominante da especificação é a original em inglês.

Please note that this translation of the specification is the result of a java.net community project ( https://jdk5-api-pt-br.dev.java.net/ ). The official version of the specification is the US English language version which can be found at http://java.sun.com/j2se/1.5.0/docs/api/. In case of disputes, the authoritative version of the specification is the original, English document.


JavaTM 2 Platform
Standard Ed. 5.0

java.util
Class HashSet<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractSet<E>
          extended by java.util.HashSet<E>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>
Direct Known Subclasses:
JobStateReasons, LinkedHashSet

public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, Serializable

Esta classe implementa a interface Set, suportada por uma hash table (atualmente uma instância de HashMap). Ela não fornece garantias quanto a ordem de iteração do set; em particular, não há garantia que o ordenamento permanecerá constante com o tempo. Esta classe permite o elemento null.

Esta classe oferece performance de tempo constante para operações básicas (add, remove, contains e size), assumindo que a função hash distribui os elementos apropriadamente entre os escaninhos. Iterar sobre este set requer tempo proporcional à soma do tamanho da instância de HashSet (o número de elementos) mais a "capacidade" da instância de HashMap de suporte (o número de escaninhos). Portanto, é muito importante não setar a capacidade inicial muito alta (ou o load factor muito baixo) se performance de iteração for importante.

Note que esta implementação não é sincronizada. Se múltiplas threads acessam um set concorrentemente, e pelo menos uma dessas threads modifica o set, este precisa ser sincronizado externamente. Isto pode ser feito sincronizando no objeto que possa vir a encapsular o set. Se não existir esse objeto, o set deve ser "embalado" usando o método Collections.synchronizedSet. Isto é melhor feito no tempo de criação, para previnir um acesso acidental, sem sincronismo, ao HashSet:

     Set s = Collections.synchronizedSet(new HashSet(...));
 

Os Iteratores retornados pelo método iterator são fail-fast: se o set for modificado após a criação do iterator, de qualquer maneira exceto através do próprio método remove do iterator, este deve lançar uma ConcurrentModificationException. Portanto, no caso de uma modificação concorrente, o iterator falha rápida e claramente, ao invés de arriscar um comportamento arbitrário e de difícil determinação posterior.

Note que o comportamento fail-fast de um iterator não pode ser garantido já que, geralmente falando, é impossível garantir algo na presença de modificação concorrente sem sincronismo. Iteratores fail-fast fazem o possível para lançar ConcurrentModificationException. Conseqüentemente, deveria ser errado escrever um programa que dependa desta exceção para o seu correto funcionamento: o comportamento fail-fast dos iteratores deve ser usado apenas para detectar bugs

Esta classe é um membro do Java Collections Framework.

Since:
1.2
See Also:
Collection, Set, TreeSet, Collections.synchronizedSet(Set), HashMap, Serialized Form

Constructor Summary
HashSet()
          Constrói um novo set, vazio; a instância de HashMap de suporte tem capacidade inicial padrão (16) e load factor (0.75).
HashSet(Collection<? extends E> c)
          Constrói um novo set contendo os elementos na coleção especificada.
HashSet(int initialCapacity)
          Constrói um novo set, vazio; a instância de HashMap de suporte tem a capacidade inicial especificada e o load factor padrão, que é 0.75.
HashSet(int initialCapacity, float loadFactor)
          Constrói um novo set, vazio; a instância de HashMap de suporte tem a capacidade inicial e load factor especificados.
 
Method Summary
 boolean add(E o)
          Adiciona o elemento especificado neste set se ele já não estiver presente.
 void clear()
          Remove todos os elementos deste set.
 Object clone()
          Retorna uma cópia raza desta instância de HashSet: seus elementos não serão clonados.
 boolean contains(Object o)
          Retorna true se este set contiver o elemento especificado.
 boolean isEmpty()
          Retorna true se este set não contiver elementos.
 Iterator<E> iterator()
          Retorna um iterator sobre os elementos neste set.
 boolean remove(Object o)
          Remove o elemento especificado deste set se ele estiver presente.
 int size()
          Retorna o número de elementos neste set (sua cardinalidade).
 
Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
 
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Set
addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
 

Constructor Detail

HashSet

public HashSet()
Constrói um novo set, vazio; a instância de HashMap de suporte tem capacidade inicial padrão (16) e load factor (0.75).


HashSet

public HashSet(Collection<? extends E> c)
Constrói um novo set contendo os elementos na coleção especificada. O HashMap é criado com load factor padrão (0.75) e capacidade inicial suficiente para conter os elementos na coleção especificada.

Parameters:
c - coleção cujo elementos devem ser atribuídos ao set.
Throws:
NullPointerException - se a coleção especificada for null.

HashSet

public HashSet(int initialCapacity,
               float loadFactor)
Constrói um novo set, vazio; a instância de HashMap de suporte tem a capacidade inicial e load factor especificados.

Parameters:
initialCapacity - capacidade inicial do hash map.
loadFactor - load factor do hash map.
Throws:
IllegalArgumentException - se a capacidade inicial for menor que zero ou se o load factor for não-positivo.

HashSet

public HashSet(int initialCapacity)
Constrói um novo set, vazio; a instância de HashMap de suporte tem a capacidade inicial especificada e o load factor padrão, que é 0.75.

Parameters:
initialCapacity - capacidade inicial do hash map.
Throws:
IllegalArgumentException - se a capacidade inicial for menor que zero.
Method Detail

iterator

public Iterator<E> iterator()
Retorna um iterator sobre os elementos neste set. Os elementos são retornados sem um ordenamento particular.

Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface Collection<E>
Specified by:
iterator in interface Set<E>
Specified by:
iterator in class AbstractCollection<E>
Returns:
um Iterator sobre os elementos neste set.
See Also:
ConcurrentModificationException

size

public int size()
Retorna o número de elementos neste set (sua cardinalidade).

Specified by:
size in interface Collection<E>
Specified by:
size in interface Set<E>
Specified by:
size in class AbstractCollection<E>
Returns:
o número de elementos neste set (sua cardinalidade).

isEmpty

public boolean isEmpty()
Retorna true se este set não contiver elementos.

Specified by:
isEmpty in interface Collection<E>
Specified by:
isEmpty in interface Set<E>
Overrides:
isEmpty in class AbstractCollection<E>
Returns:
true se este set não contiver elementos.

contains

public boolean contains(Object o)
Retorna true se este set contiver o elemento especificado.

Specified by:
contains in interface Collection<E>
Specified by:
contains in interface Set<E>
Overrides:
contains in class AbstractCollection<E>
Parameters:
o - elemento cuja presença neste set deve ser testada.
Returns:
true se este set contiver o elemento especificado.

add

public boolean add(E o)
Adiciona o elemento especificado neste set se ele já não estiver presente.

Specified by:
add in interface Collection<E>
Specified by:
add in interface Set<E>
Overrides:
add in class AbstractCollection<E>
Parameters:
o - elemento a ser adicionado neste set.
Returns:
true se o set já não contiver o elemento especificado.

remove

public boolean remove(Object o)
Remove o elemento especificado deste set se ele estiver presente.

Specified by:
remove in interface Collection<E>
Specified by:
remove in interface Set<E>
Overrides:
remove in class AbstractCollection<E>
Parameters:
o - objeto a ser removido deste set, se presente.
Returns:
true se o set contiver o elemento especificado.

clear

public void clear()
Remove todos os elementos deste set.

Specified by:
clear in interface Collection<E>
Specified by:
clear in interface Set<E>
Overrides:
clear in class AbstractCollection<E>

clone

public Object clone()
Retorna uma cópia raza desta instância de HashSet: seus elementos não serão clonados.

Overrides:
clone in class Object
Returns:
uma cópia raza deste set.
See Also:
Cloneable

JavaTM 2 Platform
Standard Ed. 5.0

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

Copyright 2006 Sun Microsystems, Inc. Todos os direitos reservados. O uso está sujeito aos termos da licensa.