Java - a classe TreeMap

A classe TreeMap implementa a interface Map usando uma árvore. Um TreeMap fornece um meio eficiente de armazenar pares de chave / valor em ordem classificada e permite a recuperação rápida.

Você deve notar que, ao contrário de um mapa hash, um mapa de árvore garante que seus elementos serão classificados em uma ordem de chave crescente.

A seguir está a lista dos construtores suportados pela classe TreeMap.

Sr. Não. Construtores e descrição
1

TreeMap( )

Este construtor constrói um mapa de árvore vazio que será classificado usando a ordem natural de suas chaves.

2

TreeMap(Comparator comp)

Este construtor constrói um mapa baseado em árvore vazio que será classificado usando o Comparator comp.

3

TreeMap(Map m)

Este construtor inicializa um mapa de árvore com as entradas de m, que será classificado usando a ordem natural das chaves.

4

TreeMap(SortedMap sm)

Este construtor inicializa um mapa de árvore com as entradas do SortedMap sm, que será classificado na mesma ordem que sm.

Além dos métodos herdados de suas classes pai, TreeMap define os seguintes métodos -

Sr. Não. Método e Descrição
1

void clear()

Remove todos os mapeamentos deste TreeMap.

2

Object clone()

Retorna uma cópia superficial desta instância TreeMap.

3

Comparator comparator()

Retorna o comparador usado para ordenar este mapa ou null se este mapa usa a ordem natural de suas chaves.

4

boolean containsKey(Object key)

Retorna verdadeiro se este mapa contém um mapeamento para a chave especificada.

5

boolean containsValue(Object value)

Retorna verdadeiro se este mapa mapeia uma ou mais chaves para o valor especificado.

6

Set entrySet()

Retorna uma visualização definida dos mapeamentos contidos neste mapa.

7

Object firstKey()

Retorna a primeira chave (mais baixa) atualmente neste mapa classificado.

8

Object get(Object key)

Retorna o valor para o qual este mapa mapeia a chave especificada.

9

SortedMap headMap(Object toKey)

Retorna uma visualização da parte deste mapa cujas chaves são estritamente menores que toKey.

10

Set keySet()

Retorna uma visualização Set das chaves contidas neste mapa.

11

Object lastKey()

Retorna a última chave (mais alta) atualmente neste mapa classificado.

12

Object put(Object key, Object value)

Associa o valor especificado com a chave especificada neste mapa.

13

void putAll(Map map)

Copia todos os mapeamentos do mapa especificado para este mapa.

14

Object remove(Object key)

Remove o mapeamento para esta chave deste TreeMap, se presente.

15

int size()

Retorna o número de mapeamentos de valores-chave neste mapa.

16

SortedMap subMap(Object fromKey, Object toKey)

Retorna uma visualização da parte deste mapa cujas chaves variam de fromKey, inclusive, a toKey, exclusivo.

17

SortedMap tailMap(Object fromKey)

Retorna uma visualização da parte deste mapa cujas chaves são maiores ou iguais a fromKey.

18

Collection values()

Retorna uma visualização de coleção dos valores contidos neste mapa.

Exemplo

O programa a seguir ilustra vários dos métodos suportados por esta coleção -

import java.util.*;
public class TreeMapDemo {

   public static void main(String args[]) {
      // Create a hash map
      TreeMap tm = new TreeMap();
      
      // Put elements to the map
      tm.put("Zara", new Double(3434.34));
      tm.put("Mahnaz", new Double(123.22));
      tm.put("Ayan", new Double(1378.00));
      tm.put("Daisy", new Double(99.22));
      tm.put("Qadir", new Double(-19.08));
      
      // Get a set of the entries
      Set set = tm.entrySet();
      
      // Get an iterator
      Iterator i = set.iterator();
      
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Deposit 1000 into Zara's account
      double balance = ((Double)tm.get("Zara")).doubleValue();
      tm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + tm.get("Zara"));
   }
}

Isso produzirá o seguinte resultado -

Resultado

Ayan: 1378.0
Daisy: 99.22
Mahnaz: 123.22
Qadir: -19.08
Zara: 3434.34

Zara's new balance: 4434.34