Como usar a estrutura de dados Java TreeMap

Como usar a estrutura de dados Java TreeMap

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. Esse construtor não recebe argumentos e gera um mapa de árvore vazio.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

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.



48073F20B78F4053D5F35B7BFAEDF4388BECC2C

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:





melhor laptop abaixo de 1000 dólares 2016
// View all tree map items as an object 
System.out.println(customers);

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 .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

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

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: 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.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

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.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

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 an item 
customers.remove(104);
System.out.println(customers);

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 versus 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)).