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