A maioria das linguagens de programação suporta matrizes. É uma estrutura de dados usada para armazenar vários elementos do mesmo tipo de dados. Se houver uma matriz declarada para seis elementos, ela não poderá ser usada para armazenar dez elementos. Portanto, matrizes não são dinâmicas e não podem alterar o tamanho da matriz depois de declarada. Linguagens de programação como Java suportam Coleções que são usadas para armazenar dados dinamicamente. As coleções oferecem suporte a operações como adicionar e excluir elementos. Há várias interfaces e classes na hierarquia de coleções. A interface base é a interface Collection. Set é uma interface que estende a interface Collection. Não permite duplicação. O TreeSet e o HashSet são duas classes na hierarquia Collection e ambos implementam a interface Set. TreeSet é uma classe que implementa a interface Set e é usada para armazenar elementos exclusivos em ordem crescente. HashSet é uma classe que implementa a interface Set e é usada para armazenar elementos exclusivos usando o mecanismo Hashing. o diferença chave entre TreeSet e HashSet é que TreeSet armazena os elementos em ordem crescente, enquanto o HashSet não armazena os elementos em ordem crescente. TreeSet e HashSet armazenam apenas elementos exclusivos.
1. Visão geral e principais diferenças
2. O que é um TreeSet
3. O que é um HashSet
4. Semelhanças entre TreeSet e HashSet
5. Comparação lado a lado - TreeSet vs HashSet em forma de tabela
6. Resumo
A classe TreeSet implementa a interface NavigableSet. A interface NavigableSet estende as interfaces SortedSet, Set, Collection e Iterable em ordem hierárquica. TreeSet sempre mantém a ordem crescente. Se os elementos foram inseridos na ordem B, A, C, eles serão armazenados como A, B, C. Os métodos como add (), remove () podem ser usados com o objeto TreeSet. O método add pode ser usado para adicionar um elemento. O método remove é usado para remover um elemento da coleção. Esses são alguns métodos que podem ser usados com o TreeSet.
Figura 01: Programa com TreeSet
De acordo com o programa acima, um objeto do tipo TreeSet é criado. Os elementos de dados da sequência são adicionados a esse objeto usando o método add. A ordem dos dados inseridos é A, D, A, B, C, D. Usando o iterador, os valores armazenados são impressos na tela. A saída é A, B, C, D. Embora existam duas letras A e duas letras D, a saída exibe uma A e um D cada. Portanto, o TreeSet armazena elementos exclusivos. Não há uma ordem de inserção específica, mas ao observar a saída, pode-se observar que o TreeSet mantém a ordem crescente dos elementos.
A classe HashSet estende a classe AbstractSet que implementa a Interface Set. A interface Set herda as interfaces Collection e Iterable em ordem hierárquica. No HashSet, não há garantia de que os elementos manterão a ordem crescente e a ordem inserida. Se a ordem inserida for A, B, C, os valores poderão ser armazenados como C, A, B. A ordem de armazenamento também poderá ser A, B, C, mas não há garantia de que a ordem inserida ou a ordem crescente seja mantida..
Figura 02: Programa com HashSet
De acordo com o programa acima, um objeto do tipo HashSet é criado. Os elementos de dados da sequência são adicionados a esse objeto usando o método add. A ordem dos dados inseridos é L, R, M, M, R, L. Usando o iterador, os valores armazenados são impressos na tela. A saída é RL M. Mesmo assim, existem duas letras L, R e M de cada uma, apenas uma letra de cada uma é exibida. Portanto, o HashSet armazena elementos exclusivos. Ao observar a saída, pode-se observar que não há ordem crescente ou a ordem inserida é mantida.
TreeSet vs HashSet | |
TreeSet é uma classe na hierarquia de coleções usada para armazenar elementos exclusivos em ordem crescente. | HashSet é uma classe na hierarquia de coleções usada para armazenar elementos exclusivos usando o mecanismo Hashing. |
Armazenamento de elementos | |
TreeSet armazena os elementos em ordem crescente. | HashSet não armazena os elementos em ordem crescente. |
Na programação, é necessário armazenar elementos de dados dinamicamente. Linguagens de programação como Java suportam Coleções para realizar esta tarefa. Há várias interfaces e classes na hierarquia de coleções. O TreeSet e o HashSet são duas classes na hierarquia da coleção. Ambos implementam a interface Set. TreeSet é uma classe que implementa a interface Set e é usada para armazenar elementos exclusivos em ordem crescente. HashSet é uma classe que implementa a interface Set e é usada para armazenar elementos exclusivos usando o mecanismo Hashing. A diferença entre TreeSet e HashSet é que o TreeSet armazena os elementos em ordem crescente, enquanto o HashSet não armazena os elementos em ordem crescente. Este artigo discutiu a diferença entre TreeSet e HashSet.
1. "TreeSet em Java - javatpoint". JavaPoint. Disponivel aqui
2. "HashSet em Java - javatpoint." JavaPoint . Disponivel aqui