SlideShare uma empresa Scribd logo
HASHSET
Emanoel V. Justino
Gilberto Guimarães
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…
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.
EXEMPLO DE USO:
TREESET
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.
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.
EXEMPLO DE USO:
LINKEDHASHSET
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.
EXEMPLO DE USO:

Mais conteúdo relacionado

PPTX
HashSet, TreeSet, LinkedHashSet em Java
PPTX
Classes e Estrutura de Dados
DOCX
Estrutura de dados
 
PPTX
Seminário - Java Collections
ODP
9 collections-ii
PDF
Curso java 08 - mais sobre coleções
HashSet, TreeSet, LinkedHashSet em Java
Classes e Estrutura de Dados
Estrutura de dados
 
Seminário - Java Collections
9 collections-ii
Curso java 08 - mais sobre coleções

Semelhante a Collections Java (6)

PDF
Estudos Technocorp
PDF
Hash e Btree
PDF
Java Coleções
PDF
Collection Java (2/2)
PPTX
Slides collections
ODP
Java 12 Colecoes
Estudos Technocorp
Hash e Btree
Java Coleções
Collection Java (2/2)
Slides collections
Java 12 Colecoes
Anúncio

Último (19)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Processos na gestão de transportes, TM100 Col18
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula04-Academia Heri- Tecnologia Geral 2025
Aula 18 - Manipulacao De Arquivos python
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Anúncio

Collections Java

  • 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.
  • 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.
  • 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.