Um breve papo sobre Coleções (Pt. 4) - A Interface Map
- #Java
Falamos até agora sobre as principais Collections do Java, no entanto, existe uma interface de grande importancia no dia a dia do desenvolvedor a qual não se encontra no pacote de Colletions. Estamos falando do Map!
A interface Map do Java é uma das principais interfaces da coleção de estruturas de dados do Java, que representa uma coleção de pares chave-valor, onde cada chave é única e mapeia para um valor correspondente. (x,y)
Principais características:
- Armazenamento de pares chave-valor: A interface Map permite armazenar elementos como pares chave-valor. Cada elemento é identificado por uma chave única que é usada para acessar seu valor correspondente. <Chave,Valor>
Exemplo:
Podemos imaginar que o conjunto de pessoas no país pode ser descrito por um Map<RG,Pessoa> onde o RG é chave para cada pessoa.
- Map.Entry : é uma interface interna da interface Map do Java que representa um par chave-valor em um mapa. Cada par chave-valor em um mapa é representado como um objeto Map.Entry<K, V>, onde K é o tipo da chave e V é o tipo do valor.
Ilustrando
Map<Integer, Pessoa>
- [1, {nome="Pessoa1",idade=14}] -> Map.Entry<Integer,Pessoa>
- [2, {nome="Pessoa2",idade=15}]
.
.
- [100, {nome="Pessoa1",idade=14}]
A interface Map.Entry define dois métodos principais:
- getKey(): Retorna a chave associada a este objeto Map.Entry.
- getValue(): Retorna o valor associado a este objeto Map.Entry.
Operações básicas:
A interface Map fornece métodos para inserir, remover e pesquisar elementos na coleção. Além disso, a Map também fornece métodos para iterar sobre suas chaves, valores ou pares chave-valor.
Suas principais implementações:
- HashMap
- TreeMap
- LinkedHashMap.
Conforme conversamos da aula de Sets, a diferença entre essas implementações estão nas estruturas de dados por trás das implementações
Principais métodos da interface Map:
- put(K key, V value): Adiciona uma chave-valor ao mapa, substituindo qualquer valor existente para a chave especificada.
- get(Object key): Retorna o valor associado à chave especificada, ou null se o mapa não contém a chave.
- remove(Object key): Remove o par chave-valor associado à chave especificada, se estiver presente no mapa.
- containsKey(Object key): Retorna true se o mapa contém a chave especificada.
- containsValue(Object value): Retorna true se o mapa contém o valor especificado.
- size(): Retorna o número de pares chave-valor no mapa.
- isEmpty(): Retorna true se o mapa não contiver pares chave-valor.
- clear(): Remove todos os pares chave-valor do mapa.
- keySet(): Retorna um conjunto de todas as chaves no mapa.
- values(): Retorna uma coleção de todos os valores no mapa.
- entrySet(): Retorna um conjunto de pares chave-valor no mapa, representados como objetos Map.Entry<K, V>.
- putAll(Map<? extends K, ? extends V> m): Adiciona todos os pares chave-valor do mapa especificado ao mapa atual.
Espero que esse artigo ajude no entendimento desta interface, e amanhã publicarei o último artigo dessa série, onde falaremos sobre Stream-API do Java.
That's All Folks!!