logo

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.

mouse e tipos de mouse
 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

ConstrutorDescriçã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étodoDescriçã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.
Definirconjunto 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:

O que é computador
 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