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.
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 e LinkedHashMap
TreeMap – é ordenado e classificado, mas mais lento em comparação com o HashMap. TreeMap 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.
