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>
java.util.LinkedHashSet<E>
public class LinkedHashSet<E>
Implementação hash table e linked list da interface Set, com ordem de iteração previsível. Esta implementação difere de HashSet já que ela mantém uma lista duplamente-encadeada percorrendo todas suas entradas. Esta linked list define o ordenamento da iteração, que é a ordem cujo elementos são inseridos no set (insertion-order). Note que a ordem de inserção não é afetada se um elemento for re-inserido no set. (Um elemento e é reinserido no set s se s.add(e) for invocado quando s.contains(e) retornar true imediatamente antes da invocação.)
Esta implementação poupa de seus clientes o ordenamento não-especificado,
geralmente caótico, fornecido por HashSet, sem o custo adicional
associado com TreeSet. Ela pode ser usada para produzir uma cópia
do set que terá o mesmo ordenamento do original, independente da implementação
original do set:
void foo(Set m) {
Set copy = new LinkedHashSet(m);
...
}
Essa técnica é particulamente útil se um módulo recebe um set como entrada,
o copia, e depois retorna o resultado cujo ordenamento será determinado por
este da cópia. (Geralmente, os clientes gostam que as coisas sejam retornadas
na ordem em que devem ser apresentadas.)
Esta classe fornece todas as operações opcionais de Set, e permite elementos null. Assim como HashSet, é fornecido performance de tempo constante para operações básicas (add, contains e remove), assumindo-se que a função hash dispersa os elementos apropriadamente entre os escaninhos. O desempenho deverá ser ligeiramente abaixo comparada à HashSet, devido ao custo adicional de se manter a linked list, mas com uma exceção: Percorrer o LinkedHashSet requer tempo proporcional ao size do set, independente de sua capacidade. Percorrer um HashSet deverá ser mais custoso, requerendo um tempo proporcional à sua capacity.
Um linked hash set possui dois parâmetros que afetam sua performance: initial capacity e load factor. Eles são definidos precisamente assim como com HashSet. Note, entretanto, que a punição por escolher um valor excessivo para a capacidade inicial é menos severa para esta classe do que para HashSet, já que o tempo de iteração para esta classe não será afetada pela capacidade.
Note que esta implementação não é sincronizada. Se múltiplas threads acessam um linked hash 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:
Set s = Collections.synchronizedSet(new LinkedHashSet(...));
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.
Object.hashCode(),
Collection,
Set,
HashSet,
TreeSet,
Hashtable,
Serialized Form| Constructor Summary | |
|---|---|
LinkedHashSet()
Constrói um novo e vazio linked hash set com valores padrões de capacidade inicial (16) e fator de carregamento (0.75). |
|
LinkedHashSet(Collection<? extends E> c)
Constrói um novo linked hash set com os mesmos elementos da coleção especificada. |
|
LinkedHashSet(int initialCapacity)
Constrói um novo e vazio linked hash set com a capacidade inicial especificada e o fator de carregamento padrão (0.75). |
|
LinkedHashSet(int initialCapacity,
float loadFactor)
Constrói um novo e vazio linked hash set com capacidade inicial e fator de carregamento especificados. |
|
| Method Summary |
|---|
| Methods inherited from class java.util.HashSet |
|---|
add, clear, clone, contains, isEmpty, iterator, remove, size |
| 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 |
|---|
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray |
| Constructor Detail |
|---|
public LinkedHashSet(int initialCapacity,
float loadFactor)
initialCapacity - capacidade inicial do linked hash set.loadFactor - fator de carregamento do linked hash set.
IllegalArgumentException - se a capacidade inicial for menor
que zero, ou se o load factor for não-positivo.public LinkedHashSet(int initialCapacity)
initialCapacity - capacidade inicial do LinkedHashSet.
IllegalArgumentException - se a capacidade inicial for menor
que zero.public LinkedHashSet()
public LinkedHashSet(Collection<? extends E> c)
c - coleção cujo elementos serão acomodados neste set.
NullPointerException - se a coleção especificada for null.
|
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.