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 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
java.util.AbstractSet<E>
java.util.HashSet<E>
public class HashSet<E>
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.
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 |
|---|
public HashSet()
public HashSet(Collection<? extends E> c)
c - coleção cujo elementos devem ser atribuídos ao set.
NullPointerException - se a coleção especificada for null.
public HashSet(int initialCapacity,
float loadFactor)
initialCapacity - capacidade inicial do hash map.loadFactor - load factor do hash map.
IllegalArgumentException - se a capacidade inicial for menor
que zero ou se o load factor for não-positivo.public HashSet(int initialCapacity)
initialCapacity - capacidade inicial do hash map.
IllegalArgumentException - se a capacidade inicial for menor
que zero.| Method Detail |
|---|
public Iterator<E> iterator()
iterator in interface Iterable<E>iterator in interface Collection<E>iterator in interface Set<E>iterator in class AbstractCollection<E>ConcurrentModificationExceptionpublic int size()
size in interface Collection<E>size in interface Set<E>size in class AbstractCollection<E>public boolean isEmpty()
isEmpty in interface Collection<E>isEmpty in interface Set<E>isEmpty in class AbstractCollection<E>public boolean contains(Object o)
contains in interface Collection<E>contains in interface Set<E>contains in class AbstractCollection<E>o - elemento cuja presença neste set deve ser testada.
public boolean add(E o)
add in interface Collection<E>add in interface Set<E>add in class AbstractCollection<E>o - elemento a ser adicionado neste set.
public boolean remove(Object o)
remove in interface Collection<E>remove in interface Set<E>remove in class AbstractCollection<E>o - objeto a ser removido deste set, se presente.
public void clear()
clear in interface Collection<E>clear in interface Set<E>clear in class AbstractCollection<E>public Object clone()
clone in class ObjectCloneable
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
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.