Publicidad
Publicidad

Más contenido relacionado

Último(20)

Publicidad

HashSet, TreeSet, LinkedHashSet em Java

  1. HASHSET
  2. OQUE É / COMO FUNCIONA É uma coleção totalmente desordenada que não se pode pegar valores com get(index), e só com os métodos: set.iterator(); iterator.hasNext(); iterator.next(); Usam o retorno do método hashCode() das classes Object (suas filhas a implementam de acordo), visando uma velocidade por comparação de hashs, e não por igualdade de referencia, etc…
  3. CASOS DE USO (QUANDO USAR) Um exemplo comum do uso constante do HashSet é em mapeamentos OneToMany do Hibernate para garantir uma agilidade na inserção de elementos, que faz-se necessário em aplicações com uma grande quantidade de dados. Outro exemplo é, se você receber um pedido para um determinado código de fornecedor, você pode querer verificar para garantir que o código do fornecedor pertence ao conjunto de códigos de fornecedores. Nesses casos, o HashSet<T> é útil para realizar consultas super-rápidas onde a ordem não é importante.
  4. EXEMPLO DE USO:
  5. TREESET
  6. OQUE É / COMO FUNCIONA Conhecido por árvore negra, tem como sua principal caracteristica ser o unico Set que implementa a interface SortedSet em vez de Set diretamente, mas de qualquer forma SortedSet implementa Set, assim continuamos tendo os mesmo métodos no TreeSet. Por ele implementar o SortedSet ele possui elementos ordenados automaticamente. Porém a complexidade para os métodos add, remove e contains são bem maiores que do HashSet.
  7. CASOS DE USO (QUANDO USAR) TreeSet – Preserva a ordem natural dos elementos, porem ocorre uma perda de performance na inserção e deleção TreeSet utiliza-se de uma árvore Binária para alinhar os elementos. Esse tipo de abordagem se mostra bastante eficiente para procurar elementos, esta abordagem consta em se varrer uma árvore balanceada, contudo se ponto fraco reside justamente no balanceamento da árvore, que pode gerar lentidão a depender da quantidade de elementos existentes.
  8. EXEMPLO DE USO:
  9. LINKEDHASHSET
  10. OQUE É / COMO FUNCIONA LinkedHashSet – é derivada de HashSet, mas mantém uma lista duplamente ligada através de seus itens. Seus elementos são iterados na ordem em que foram inseridos. Opcionalmente é possível criar um LinkedHashSet que seja percorrido na ordem em que os elementos foram acessados na última iteração.  Ela é um meio termo entre HashSet e TreeSet, ou seja, ela nos proporciona uma boa performance e pode ser ordenada.  No LinkedHashSet os elementos continuam na ordem que são inseridos, diferente do HashSet que “embaralha” tudo, é parecido com ArrayList.  Sua a complexidade também é O(1) para operações básicas, sendo assim, adicionar (add), remover (remove) e verificar (contains), tem performace semelhante ao HashSet.  Quando precisar de um Set ordenado, sugiro o uso do LinkedHashSet, pois tem boa performance e ainda sim poder ser ordenada.
  11. EXEMPLO DE USO:
Publicidad