Maps

Tipos de Dados e Exceções em Java

Jim White

Java Developer

Maps são tabelas de consulta

  • Maps funcionam como tabelas de consulta
    • Armazenam um "valor" em uma "chave" específica
    • Use a "chave" para buscar o "valor"
  • Exemplo: ao ligar para um médico
    • Eles localizam o prontuário (o objeto value) dado nome/data de nascimento (a key)

Maps servem como uma estrutura de consulta, como quando você liga para o consultório e informam seu nome e data de nascimento para achar seu prontuário

Tipos de Dados e Exceções em Java

Interface Map

  • A interface Map define operações em pares chave/valor
    • Como armazenar ou "put" um valor na estrutura em uma chave específica
    • Como "remove" o valor na chave do Map
    • Como recuperar o valor dada uma chave
  • Várias implementações de Map com comportamento similar
    • Uma implementação popular é HashMap
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Tipos de Dados e Exceções em Java

Chaves e valores em HashMap

Chaves e valores em Map ou HashMap podem ter tipos iguais ou diferentes

Tipos de Dados e Exceções em Java

Construção de HashMap

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • O construtor parametrizado/genérico de HashMap exige dois tipos

    • O primeiro tipo = o tipo da key

      O primeiro parâmetro genérico de HashMap é para as chaves

    • O segundo tipo = o tipo do value

      O segundo parâmetro genérico de Hashmap é para os valores

Os tipos de chave e valor nos genéricos definem o tipo de dados para chaves e valores

  • Requer import de java.util.HashMap
Tipos de Dados e Exceções em Java

Métodos de HashMap

  • Use .put(key,value) para adicionar pares chave/valor
  • Use .remove(key) para remover o par na chave
  • Use .get(key) para obter o valor na chave
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Tipos de Dados e Exceções em Java

Collections

  • java.util.Collections é uma classe de apoio
  • Ajuda a ordenar, preencher, copiar, buscar e mais
    • Só tem métodos static
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Tipos de Dados e Exceções em Java

Métodos de Collection

  • Adicionar vários objetos a uma List
    • addAll(List list, Object a, b, ...)
  • Retornar a contagem de um objeto em uma coleção
    • frequency(Collection c, Object o)
  • Reordenar os objetos em uma List
    • reverse(List list)
  • Ordenar os objetos em uma List
    • sort(List list)
  • Substituir todos os objetos de uma List por outro objeto
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Tipos de Dados e Exceções em Java

Arrays

  • Às vezes é preciso converter um array (por exemplo, int[]) em uma List
    • Arrays em Java não são redimensionáveis e pode ser necessário crescer/reduzir os elementos
    • List tem mais recursos (busca, ordenação etc.)
  • java.util.Arrays é outra classe de apoio
    • Permite converter um array Java em uma List
Tipos de Dados e Exceções em Java

Exemplo com Arrays

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Tipos de Dados e Exceções em Java

Vamos praticar!

Tipos de Dados e Exceções em Java

Preparing Video For Download...