Guia de Como Escolher Coleções em Java

Java oferece uma variedade de implementações de coleção para você escolher. Em geral, você sempre procurará a coleção com o melhor desempenho para sua tarefa de programação, que na maioria dos casos é ArrayList HashSet ou   HashMap . Mas esteja ciente, se você precisar de alguns recursos especiais, como classificação ou ordenação, pode ser necessário ir para uma implementação especial. Este tutorial de coleções java não inclui classes raramente usadas como WeakHashMap  etc. porque elas são projetadas para tarefas muito específicas ou exóticas e não devem ser escolhidas em 99% dos casos.

Se você precisar de um conhecimento profundo de como uma coleção específica é implementada, leia o tutorial oficial da Estrutura de Coleções .

Primeiro, vamos examinar o fluxograma a seguir. Isso o ajudará a determinar a interface de coleção a ser usada com base nos dados que deseja armazenar nesta coleção.

Como escolher listas, mapas e coleções em Java
Guia como escolher coleções em Java – Créditos Sérgio Taborda

A regra principal aqui é: se você precisa armazenar valores com chaves mapeadas para eles, vá para a interface Map, caso contrário, use List para valores que podem estar duplicados e, finalmente, use a interface Set se não quiser valores duplicados em sua coleção.

Escolha a interface de mapa Java certa

HashMap – use esta implementação se a ordem dos itens durante a iteração não for importante para você. HashMap tem melhor desempenho em comparação com TreeMap LinkedHashMap

TreeMap – é ordenado e classificado, mas mais lento em comparação com o HashMapTreeMap tem ordem crescente de chaves, de acordo com seu comparador

LinkedHashMap – ordena os itens por chave durante a inserção

Escolha a interface de Lista Java certa

ArrayList – os itens são solicitados durante a inserção. As operações de pesquisa em ArrayLists são mais rápidas em comparação com as operações de pesquisa em LinkedLists

LinkedList – tem adição rápida ao início da lista e exclusão rápida do interior por meio de iteração

Escolha a interface de conjunto Java certa

HashSet – use esta implementação se a ordem dos itens durante a iteração não for importante para você. HashSet tem melhor desempenho em comparação com TreeSet e LinkedHashSet

LinkedHashSet – ordena itens durante a inserção

TreeSet – tem ordem crescente de chaves, de acordo com seu comparador

Abaixo segue mais um fluxograma, dessa vez em inglês, que resume os caminhos para escolher as coleções adequadas.

Guia em Inglês de como escolher listas, mapas e coleções em java
How to choose collection in java – por Alexander Zagniotov

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.