Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida exercício 7 aula 10 - Curso Java Collections

Boa noite galera, no meu código terminei fazendo desta forma:

package br.com.java.collections.arraylist;

import java.util.HashMap;
import java.util.Map;

public class TesteMap {

    public static void main(String[] args) {

        Map<String, Integer> nomesParaIdade = new HashMap<>();
        nomesParaIdade.put("Paulo", 31);
        nomesParaIdade.put("Adriano", 25);
        nomesParaIdade.put("Alberto", 33);
        nomesParaIdade.put("Guilherme", 26);

        System.out.println("keySet() - Nome");
        nomesParaIdade.keySet().forEach(nome -> {
            System.out.println(nome);
        });

        System.out.println("\nvalues() - Idade");
        nomesParaIdade.values().forEach(idade -> {
            System.out.println(idade);
        });

        System.out.println("\nentrySet() - Nome , Idade");
        nomesParaIdade.entrySet().forEach(associacoes -> {
            System.out.println(associacoes);
        });
    }

}

porém na resposta do instrutor está de forma diferente :

KEYSET

Set<String> chaves = nomesParaIdade.keySet();    
for (String nome : chaves) {
    System.out.println(nome);
}

VALUES

Collection<Integer> valores = nomesParaIdade.values();
for (Integer idade : valores) {
    System.out.println(idade);
}

ENTRYSET

Set<Entry<String, Integer>> associacoes = nomesParaIdade.entrySet();    
for (Entry<String, Integer> associacao : associacoes) {
    System.out.println(associacao.getKey() + " - " + associacao.getValue());
}

Qual seria a diferença, entre meu código e o do instrutor ? Já que ambos escrevem os mesmos valores no console.

3 respostas
solução!

Vc apenas fez a mesma coisa com o novo recurso do java 8 , as expressões lambda.

Ah beleza, achei que por ter usado essas expressões eu teria alguma diferença na performance do código.

É preferível a utilização de expressões lambda (por N motivos, performance pode ser um deles ), mas eu falei "mesma coisa" no sentido do resultado.