Um mapa contém valores com base na chave, ou seja, par de chave e valor. Cada par de chave e valor é conhecido como uma entrada. Um mapa contém chaves exclusivas.
Um Mapa é útil se você precisar pesquisar, atualizar ou excluir elementos com base em uma chave.
Hierarquia de mapas Java
Existem duas interfaces para implementação de Map em java: Map e SortedMap, e três classes: HashMap, LinkedHashMap e TreeMap. A hierarquia do Java Map é fornecida abaixo:
Um mapa não permite chaves duplicadas, mas você pode ter valores duplicados. HashMap e LinkedHashMap permitem chaves e valores nulos, mas TreeMap não permite nenhuma chave ou valor nulo.
Um Mapa não pode ser percorrido, então você precisa convertê-lo em Conjunto usando conjunto de chaves() ou conjunto de entrada() método.
Aula | Descrição |
---|---|
HashMap | HashMap é a implementação do Map, mas não mantém nenhuma ordem. |
LinkedHashMap | LinkedHashMap é a implementação do Map. Ele herda a classe HashMap. Ele mantém o pedido de inserção. |
ÁrvoreMapa | TreeMap é a implementação de Map e SortedMap. Mantém a ordem crescente. |
Métodos úteis de interface do mapa
Método | Descrição |
---|---|
V colocar (chave do objeto, valor do objeto) | É usado para inserir uma entrada no mapa. |
void putAll (mapa do mapa) | É usado para inserir o mapa especificado no mapa. |
V putIfAbsent(chave K, valor V) | Ele insere o valor especificado com a chave especificada no mapa somente se ainda não estiver especificado. |
V remover (chave do objeto) | É usado para excluir uma entrada para a chave especificada. |
remoção booleana (chave do objeto, valor do objeto) | Ele remove os valores especificados com as chaves especificadas associadas do mapa. |
Definir keySet() | Ele retorna a visualização Set contendo todas as chaves. |
Definir | Ele retorna a visualização Set contendo todas as chaves e valores. |
vazio claro() | É usado para redefinir o mapa. |
V computar (tecla K, função de remapeamento BiFunction) | É usado para calcular um mapeamento para a chave especificada e seu valor mapeado atual (ou nulo se não houver mapeamento atual). |
V computaIfAbsent (tecla K, função de mapeamentoFunction) | É usado para calcular seu valor usando a função de mapeamento fornecida, se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para nulo) e inseri-la neste mapa, a menos que seja nula. |
V computaIfPresent (tecla K, função de remapeamento BiFunction) | É usado para calcular um novo mapeamento dada a chave e seu valor mapeado atual se o valor da chave especificada estiver presente e não for nulo. |
booleano contémValue (valor do objeto) | Este método retorna verdadeiro se algum valor igual ao valor existir no mapa, caso contrário, retorna falso. |
booleano contémKey (chave do objeto) | Este método retorna verdadeiro se alguma chave igual à chave existir no mapa, caso contrário, retorna falso. |
booleano é igual (objeto o) | É usado para comparar o objeto especificado com o mapa. |
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. |
V get (chave do objeto) | Este método retorna o objeto que contém o valor associado à chave. |
V getOrDefault (chave do objeto, V defaultValue) | Ele retorna o valor para o qual a chave especificada está mapeada ou defaultValue se o mapa não contiver nenhum mapeamento para a chave. |
int hashCode() | Ele retorna o valor do código hash para o mapa |
booleano isEmpty() | Este método retorna verdadeiro se o mapa estiver vazio; retorna falso se contiver pelo menos uma chave. |
Mesclagem V (chave K, valor V, função de remapeamento BiFunction) | Se a chave especificada ainda não estiver associada a um valor ou estiver associada a nulo, associa-a ao valor não nulo fornecido. |
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. |
Valores de coleção() | Ele retorna uma visão de coleção dos valores contidos no mapa. |
tamanho interno() | Este método retorna o número de entradas no mapa. |
Interface Map.Entry
Entry é a subinterface do Map. Portanto, seremos acessados pelo nome Map.Entry. Retorna uma visão de coleção do mapa, cujos elementos são desta classe. Ele fornece métodos para obter chave e valor.
Métodos de interface Map.Entry
Método | Descrição |
---|---|
K getKey() | É usado para obter uma chave. |
V getValor() | É usado para obter valor. |
int hashCode() | É usado para obter hashCode. |
V setValue (valor V) | É usado para substituir o valor correspondente a esta entrada pelo valor especificado. |
booleano é igual (objeto o) | É usado para comparar o objeto especificado com outros objetos existentes. |
estático | Ele retorna um comparador que compara os objetos em ordem natural na chave. |
Comparador estático | Ele retorna um comparador que compara os objetos por chave usando o Comparador fornecido. |
estático | Ele retorna um comparador que compara os objetos em ordem natural por valor. |
Comparador estático | Ele retorna um comparador que compara os objetos por valor usando o Comparador fornecido. |
Exemplo de mapa Java: não genérico (estilo antigo)
//Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } }
Saída:
1 Amit 2 Jai 5 Rahul 6 Amit
Exemplo de mapa Java: genérico (novo estilo)
import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Saída:
102 Rahul 100 Amit 101 Vijay
Exemplo de mapa Java: comparandoByKey()
import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Saída:
100=Amit 101=Vijay 102=Rahul
Exemplo de mapa Java: comparandoByKey() em ordem decrescente
import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Saída:
102=Rahul 101=Vijay 100=Amit
Exemplo de mapa Java: comparandoByValue()
import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Saída:
100=Amit 102=Rahul 101=Vijay
Exemplo de mapa Java: comparandoByValue() em ordem decrescente
import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Saída:
101=Vijay 102=Rahul 100=Amit