Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Olá, tenho uma dúvida, no curso se falou muito de Stream para Lists, tem alguma forma de usar o Stream para Maps, ou tem alguma classe parecida com Stream para Maps???

import java.util.HashMap;
import java.util.Map;
import java.util.stream.Stream;

import Z_classesApoio.Funcionario;

class Teste {

    public static void main(String[] args) {
        Map <Integer, String>nomes = new HashMap <Integer, String>();

        nomes.put(1, "Guilerme");
        nomes.put(2, "Joao");
        nomes.put(3, "Amanda");
        nomes.put(4, "Carlos");

        Stream<Funcionario> stream = nomes.stream().filter(n -> n.keySet() >= 3);
        stream.forEach((numero, nome) ->{System.out.print(numero+" "+nome+", "); });
    }
}
1 resposta
solução!

Oi Ricardo!

Os maps não possuem o método stream() diretamente. O que você pode fazer o seguinte: a interface Map tem um método chamado entrySet(), que retorna um Set de Entrys que contêm todas as chaves do Map com seus valores.

Então da pra fazer algo parecido com:

Stream<Map.Entry<Integer, String>> stream = nomes.entrySet()
        .stream()
        .filter(e -> e.getKey() > 3);
stream
        .forEach(e -> System.out.println(e.getKey() + ", " + e.getValue()));

Espero ter ajudado. Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software