Classe Java TreeMap

Classe Java TreeMap
Hierarquia de classes Java TreeMap

A classe Java TreeMap é uma implementação baseada em árvore vermelha e preta. Ele fornece um meio eficiente de armazenar pares de valores-chave em ordem de classificação.

Os pontos importantes sobre a classe Java TreeMap são:

  • Java TreeMap contém valores baseados na chave. Ele implementa a interface NavigableMap e estende a classe AbstractMap.
  • Java TreeMap contém apenas elementos exclusivos.
  • Java TreeMap não pode ter uma chave nula, mas pode ter vários valores nulos.
  • Java TreeMap não está sincronizado.
  • Java TreeMap mantém ordem crescente.

Declaração de classe TreeMap

Vamos ver a declaração da classe java.util.TreeMap.

 public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable  

Parâmetros da classe TreeMap

Vamos ver os parâmetros da classe java.util.TreeMap.

    K : É o tipo de chaves mantidas por este mapa. EM : É o tipo de valores mapeados.

Construtores da classe Java TreeMap

Construtor Descrição
TreeMap() É usado para construir um mapa de árvore vazio que será classificado usando a ordem natural de sua chave.
TreeMap (comparador comparador) É usado para construir um mapa vazio baseado em árvore que será classificado usando o comparador comp.
TreeMap(Mapa m) É usado para inicializar um mapa de árvore com as entradas de eu , que será classificado usando a ordem natural das chaves.
TreeMap (SortedMap m) É usado para inicializar um mapa de árvore com as entradas do SortedMap sm , que será classificado na mesma ordem que sm.

Métodos da classe Java TreeMap

Método Descrição
Map.Entry tetoEntry(tecla K) Ele retorna o par chave-valor com a menor chave, maior ou igual à chave especificada ou nulo se tal chave não existir.
K tetoKey(tecla K) Ele retorna a menor chave, maior que a chave especificada ou nula se tal chave não existir.
vazio claro() Ele remove todos os pares de valores-chave de um mapa.
Clone de objeto() Ele retorna uma cópia superficial da instância TreeMap.
Comparador comparador() Ele retorna o comparador que organiza a chave em ordem ou nulo se o mapa usar a ordem natural.
NavigableSet descendenteKeySet() Ele retorna uma visualização NavigableSet de ordem inversa das chaves contidas no mapa.
NavigableMap descendenteMap() Ele retorna os pares de valores-chave especificados em ordem decrescente.
Map.Entry primeiraEntrada() Ele retorna o par chave-valor com a menor chave.
Map.Entry floorEntry(tecla K) Ele retorna a maior chave, menor ou igual à chave especificada, ou nulo se tal chave não existir.
void forEach (ação BiConsumer) Ele executa a ação especificada para cada entrada no mapa até que todas as entradas tenham sido processadas ou a ação gere uma exceção.
SortedMap headMap(K toKey) Ele retorna os pares chave-valor cujas chaves são estritamente menores que toKey.
NavigableMap headMap (K toKey, booleano inclusive) Ele retorna os pares chave-valor cujas chaves são menores que (ou iguais se inclusive for verdadeiro) toKey.
Map.Entry entrada superior (tecla K) Ele retorna a menor chave estritamente maior que a chave fornecida ou nula se tal chave não existir.
K superiorKey(tecla K) É usado para retornar verdadeiro se este mapa contiver um mapeamento para a chave especificada.
Definir keySet() Ele retorna a coleção de chaves existentes no mapa.
Map.Entry lastEntry() Ele retorna o par chave-valor com a maior chave ou nulo se essa chave não existir.
Map.Entry lowerEntry (tecla K) Ele retorna um mapeamento de valor-chave associado à maior chave estritamente menor que a chave fornecida, ou nulo se tal chave não existir.
K lowerKey (tecla K) Ele retorna a maior chave estritamente menor que a chave fornecida ou nula se tal chave não existir.
NavigableSet navigableKeySet() Ele retorna uma visualização NavigableSet das chaves contidas neste mapa.
Map.Entry pollFirstEntry() Ele remove e retorna um mapeamento de valor-chave associado à menor chave neste mapa ou nulo se o mapa estiver vazio.
Map.Entry pollLastEntry() Ele remove e retorna um mapeamento de valor-chave associado à maior chave neste mapa ou nulo se o mapa estiver vazio.
V colocar (chave K, valor V) Ele insere o valor especificado com a chave especificada no mapa.
void putAll (mapa do mapa) É usado para copiar todos os pares de valores-chave de um mapa para outro.
Substituição V (tecla K, valor V) Ele substitui o valor especificado por uma chave especificada.
substituição booleana (tecla K, V oldValue, V newValue) Ele substitui o valor antigo pelo novo valor de uma chave especificada.
void replaceAll (função BiFunction) Ele substitui o valor de cada entrada pelo resultado da invocação de uma determinada função nessa entrada até que todas as entradas tenham sido processadas ou a função gere uma exceção.
NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) Ele retorna pares de valores-chave cujas chaves variam de fromKey a toKey.
SortedMap subMap (K fromKey, K toKey) Ele retorna pares chave-valor cujas chaves variam de fromKey, inclusive, a toKey, exclusivo.
SortedMap tailMap (K fromKey) Ele retorna pares de valores-chave cujas chaves são maiores ou iguais a fromKey.
NavigableMap tailMap(K fromKey, booleano inclusive) Ele retorna pares de valores-chave cujas chaves são maiores que (ou iguais, se inclusive for verdadeiro) fromKey.
booleano contémKey (chave do objeto) Retorna verdadeiro se o mapa contiver um mapeamento para a chave especificada.
booleano contémValue (valor do objeto) Retornará verdadeiro se o mapa mapear uma ou mais chaves para o valor especificado.
K primeirachave() É usado para retornar a primeira chave (mais baixa) atualmente neste mapa classificado.
V get (chave do objeto) É usado para retornar o valor para o qual o mapa mapeia a chave especificada.
Kúltimachave() É usado para retornar a última chave (mais alta) atualmente no mapa classificado.
V remover (chave do objeto) Ele remove o par chave-valor da chave especificada do mapa.
Definir conjunto de entrada() Ele retorna uma visualização definida dos mapeamentos contidos no mapa.
tamanho interno() Ele retorna o número de pares de valores-chave existentes na tabela hash.
Valores de coleção() Ele retorna uma visão de coleção dos valores contidos no mapa.

Exemplo de TreeMap Java

 import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }  
 Output:100 Amit 101 Vijay 102 Ravi 103 Rahul  

Exemplo de TreeMap Java: remove()

 import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }  

Saída:

 Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul  

Exemplo Java TreeMap: NavigableMap

 import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } }  
 descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi}  

Exemplo de Java TreeMap: SortedMap

 import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } }  
 headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay}  

Qual é a diferença entre HashMap e TreeMap?

HashMap ÁrvoreMapa
1) HashMap pode conter uma chave nula. TreeMap não pode conter nenhuma chave nula.
2) HashMap não mantém ordem. TreeMap mantém ordem crescente.

Exemplo Java TreeMap: Livro

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }  

Saída:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6