Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collections Map #28

Open
HayaneWakayama opened this issue Sep 9, 2023 · 2 comments
Open

Collections Map #28

HayaneWakayama opened this issue Sep 9, 2023 · 2 comments

Comments

@HayaneWakayama
Copy link

Oi Cami, preciso de uma ajuda.
Não consegui entender muito bem o Map, tanto que não consegui resolver o exercício da Livraria Online.
Tem indicação de algum material que eu possa ver ??
Quando começou com Map, entry, e outras coisas me perdi rsrs.

@cami-la
Copy link
Owner

cami-la commented Sep 11, 2023

Oi, @HayaneWakayama. Tudo certinho?

O Map é uma estrutura de dados que armazena pares de valores, onde cada valor é associado a uma chave única. É semelhante a um dicionário, onde você pode procurar um valor (chave) e obter o valor associado a essa chave.

O Map.Entry é uma ferramenta útil para acessar e manipular as chaves e valores de um Map durante a iteração.

Aqui está um exemplo de como criar e usar um Map em Java:

// Criar um HashMap onde a chave é uma String (nome) e o valor é um Integer (idade)
Map<String, Integer> mapaIdades = new HashMap<>();

// Adicionar pares chave-valor ao mapa
mapaIdades.put("Alice", 15);
mapaIdades.put("Camila", 29);
mapaIdades.put("Bruna", 15);

Agora, vamos supor que você queira encontrar todas as chaves (nomes) que têm o valor 15. Como fazer isso?

  1. Primeiro, você precisa de um laço de repetição para percorrer todo o Map e verificar quais são as chaves que contêm o valor 15.
  2. Para isso, você utiliza o método keySet(). Por que usar o keySet()? Esse método permite criar um vínculo entre a chave e o valor enquanto você percorre o laço.
  3. O método keySet() retorna um Set de chaves. No entanto, um Set não tem a estrutura chave-valor como um Map. É aqui que entra o Map.Entry. Ele permite "vincular" a chave ao valor, mesmo não sendo uma estrutura de Map. Assim, você consegue acessar tanto a chave quanto o valor associado.

Aqui está o código que faz isso:

// Iterar pelo mapa usando Map.Entry
for (Map.Entry<String, Integer> entry : mapaIdades.entrySet()) {
    if (entry.getValue() == 15) {
        System.out.println("entry.getKey() + " - " + entry.getValue() + " anos.");
    }
}

Neste exemplo, iteramos pelas entradas do Map usando Map.Entry. Para cada entrada, verificamos se o valor é igual a 15 e, se for, imprimimos tanto a chave quanto o valor associado.

Enfim, te dei essa pequena demonstração, mas têm umas aulas aqui do canal DevDojo que explica mais um pouco sobre Map.

Caso você queira, depois de assistir essas aulas para consolidar os conhecimentos, posso sugerir exercícios para você treinar.

@HayaneWakayama
Copy link
Author

Obrigada!! Vou assistir as aulas!! Eu ficaria muito grata se puder passar os exercícios 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants