Colecoes

Mapas

Java Collections - Map

A java.util.Map é uma coleção que representa uma estrutura chave/valor ou "mapping key/value" mapeando-se uma chave única à um valor onde, obviamente tanto a chave quanto o valor são basicamente objetos.

ℹ️ Informação
Mesmo fazendo parte da Collection Framework, um Map não é considerado uma Collection, não existe relação de herança entre elas.
NomeDescrição
HashMapUm mapa sem relevância quanto a ordem de interação
LinkedHashMapUm mapa que mantém a ordem de inserção.
TreeMapUm mapa capaz de classificar as chaves pela ordem natural

Já aprendemos que umas das principais operações em uma coleção são: Adicionar elementos e interagir mediante os elementos adicionados. Em particular, um Map dispõe de uma estrutura particular para estas operações.

Adicionando elementos

Diferente das demais coleções aonde usamos o método add para incluir novos elementos, um Map disponibiliza o método put que recebe dois parâmetros keye value respectivamente.

Mapas.java
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Mapas {
    public static void main(String[] args) {
        Map estadosBrasileiro = new HashMap();
        estadosBrasileiro.put("SP","SAO PAULO");
        estadosBrasileiro.put("PI","PIAUÍ");
        estadosBrasileiro.put("MA","MARANHÃO");
        estadosBrasileiro.put("AM","AMAZONAS");
        estadosBrasileiro.put("BA","BAHIA");
        estadosBrasileiro.put("GO","GOIAS");

        Iterator ufsIterator = estadosBrasileiro.keySet().iterator();
        while (ufsIterator.hasNext()) {
            Object key   =  ufsIterator.next();

            Object value =  estadosBrasileiro.get(key);

            System.out.println("Sigla: " + key + " Nome: " + value);
        }

        // outro exemplo
        // Map e Enum são contexto diferentes
        // Avalie cada contexto e usabilidade

        Map estadosCivil = new HashMap();
        estadosCivil.put("S","SOLTEIRO(A)");
        estadosCivil.put("C","CASADO(A)");
        estadosCivil.put("D","DIVORCIADO(A)");
        estadosCivil.put("V","VIÚVO(A)");
    }
}
Sigla: MA Nome: MARANHÃO
Sigla: GO Nome: GOIAS
Sigla: PI Nome: PIAUÍ
Sigla: AM Nome: AMAZONAS
Sigla: SP Nome: SAO PAULO
Sigla: BA Nome: BAHIA
✔️ Conclusão
Agora imagina qual a ordem na impressão dos estados brasileiros ao mudar a linha 6 do código acima para que o map fosse do tipo LinkedHashMap e TreeMap respectivamente?