A classe Java TreeMap armazena dados em uma estrutura de árvore usando uma interface de mapa. Essa classe estende a classe AbstractMap e, como sua classe pai, TreeMap possui dois parâmetros de tipo. Um de seus parâmetros de tipo representa as chaves no TreeMap, enquanto o outro representa os valores.

A estrutura de dados TreeMap armazena pares de valores-chave e permite que você execute operações CRUD nesses dados.

Como criar um mapa de árvore em Java

A classe TreeMap tem quatro construtores que você pode usar para criar um novo objeto TreeMap. O construtor padrão é o mais popular dos quatro. Este construtor não recebe argumentos e gera um mapa de árvore vazio.

// Cria um novo mapa de árvore
TreeMap clientes = novo TreeMap();

O código acima gera um mapa de árvore vazio chamado clientes.

Preenchendo a estrutura de dados do TreeMap

o colocar() O método adiciona um item a um objeto TreeMap. São necessários dois argumentos — uma chave e seu valor. Você pode adicionar itens ao mapa de árvore em qualquer ordem aleatória e a estrutura de dados os armazenará em ordem crescente, de acordo com suas chaves.

instagram viewer

// Preencher um mapa de árvore
clientes.put(105, "Jessica Jones");
clientes.put(102, "Marca Williams");
clientes.put(104, "Phil Blair");
clientes.put(101, "Kim Brown");
clientes.put(103, "Jim Riley");

O código acima adiciona cinco clientes, em ordem aleatória, ao mapa da árvore de clientes.

Visualizando Itens em um TreeMap

A classe TreeMap armazena seus dados em um objeto. Então, para ver todos os itens em um mapa de árvore, você pode simplesmente imprimir o objeto de mapa de árvore no console:

// Visualiza todos os itens do mapa de árvore como um objeto
System.out.println (clientes);

O código acima imprime a seguinte saída no console:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Observe que o objeto acima exibe os itens em ordem crescente. Você também pode visualizar cada item e sua chave correspondente usando um loop para Java.

// Visualiza todos os itens com um iterador
por (Entrada cliente: clientes.conjuntoentry()) {
System.out.println("Chave: " + customer.getKey() + " Valor: " + customer.getValue());
}

O código acima imprime a seguinte saída no console:

Chave: 101 Valor: Kim Brown
Chave: 102 Valor: Mark Williams
Chave: 103 Valor: Jim Riley
Chave: 104 Valor: Phil Blair
Chave: 105 Valor: Jessica Jones

Atualizando itens em um TreeMap

A classe TreeMap permite atualizar um item existente usando o substituir() método. Existem dois métodos de substituição. O primeiro método usa uma chave existente e o novo valor para o qual você deseja mapear a chave existente.

//Substitui o valor existente
clientes.substituir(101,"Kim Smith");
System.out.println (clientes);

O código acima imprime o seguinte objeto no console:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Como você pode ver Kim Brown é agora Kim Smith. O segundo método replace() pega uma chave existente, o valor atual da chave e o novo valor que você deseja mapear para a chave.

//Substitui o valor existente
clientes.substituir(103,"Jim Riley", "Michelle Noah");
System.out.println (clientes);

O código acima imprime o seguinte objeto no console:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

No objeto acima Michelle Noah substitui Jim Riley.

Excluindo itens do TreeMap

Se você deseja remover um único item do mapa de árvore, o remover() método é sua única opção. Ele pega a chave associada ao item que você deseja remover e retorna o valor excluído.

//Remove um item
clientes.remover(104);
System.out.println (clientes);

A execução do código acima imprime o seguinte objeto no console:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

este Classe Java também tem um Claro() método que permite excluir todos os itens no mapa de árvore.

O TreeMap vs. a classe Java HashMap

TreeMap e HashMap são duas das classes de mapas Java mais populares. Ambos estendem a classe AbstractMap. Esse relacionamento dá às classes TreeMap e HashMap acesso a muitas das mesmas funções.

No entanto, existem algumas diferenças notáveis ​​entre essas duas classes de mapas. O TreeMap usa uma implementação de árvore Red-Black da interface Map, enquanto o HashMap usa uma tabela de hash. HashMap permite armazenar uma única chave nula, enquanto TreeMap não. Finalmente, um HashMap é mais rápido que um TreeMap. A velocidade algorítmica do primeiro é O(1), enquanto a do último é O(log (n)).