Skip to content

eps364/CollectionPerformance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CollectionPerformance

Comparativo simples de ArrayList, HashSet e TreeSet

ArrayList<>()

Uma implementação de lista baseada em um array redimensionável, que mantém a ordem de inserção dos elementos e permite elementos duplicados. É eficiente para acesso aleatório rápido, mas pode ser mais lento para operações de adição e remoção quando a lista é grande, devido à necessidade de redimensionamento e deslocamento dos elementos. ArrayList quando precisar de uma coleção ordenada com acesso rápido

HashSet<>()

Uma implementação de conjunto baseada em uma tabela hash, que não mantém nenhuma ordem específica e não permite elementos duplicados. É geralmente mais rápido para operações de adição, remoção e verificação de existência de elementos, devido à sua implementação baseada em tabela hash. Quando precisar de uma coleção sem duplicadas e com operações rápidas de adição e remoção.

TreeSet<>()

Uma implementação de conjunto baseada em uma árvore binária balanceada (Red-Black Tree), que mantém os elementos automaticamente ordenados e não permite elementos duplicados. Oferece operações de adição, remoção e busca com complexidade O(log n), sendo mais lento que HashSet mas mais rápido que ArrayList para buscas. É ideal quando você precisa de elementos únicos e sempre ordenados. Use TreeSet quando precisar de uma coleção sem duplicatas, com elementos sempre ordenados e operações moderadamente rápidas.

Melhor Performance

Para o código mencionado, a melhor performance se deu para o HashSet. ArrayList possui a menor performance segundo o código utilizado. TreeSet apresenta performance intermediária, sendo consistentemente melhor que ArrayList mas inferior ao HashSet.

Quando usar cada um?

  • HashSet: Melhor performance geral, use quando não precisar de ordem
  • TreeSet: Use quando precisar de elementos ordenados automaticamente
  • ArrayList: Use quando precisar manter ordem de inserção e permitir duplicatas

Output de uma das execuções

Estrutura Tempo (ms) Elementos
ArrayList 247 30000
HashSet 7 30000
TreeSet 22 30000
ArrayList 883 50000
HashSet 5 50000
TreeSet 14 50000
ArrayList 4161 100000
HashSet 8 100000
TreeSet 26 100000
ArrayList 11207 150000
HashSet 3 150000
TreeSet 26 150000
ArrayList 31458 200000
HashSet 15 200000
TreeSet 25 200000
ArrayList 110900 300000
HashSet 19 300000
TreeSet 53 300000
ArrayList 396058 500000
HashSet 42 500000
TreeSet 96 500000

alt text

alt text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages