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

Uso de forEach e if ao mesmo tempo (duvida)

Galera preciso imprimir apenas os homens de uma lista,como posso fazer? Por enquanto minha ideia foi essa mas nao deu certo :

    public void imprimirLista(List<Pessoa> lista, Sexo sexo) {
        if (lista.forEach(p -> p.getGender().equals(Sexo.MASCULINO))) {
            lista.forEach(p -> p.imprimir());
        }
    }

"Corpo do codigo (.java)": https://pastebin.com/raw/2dTX6zKY

"Main do java (.java)": https://pastebin.com/raw/VbK0xUq5

6 respostas

Esse post trata do mesmo programa que esse outro https://cursos.alura.com.br/forum/topico-como-ordernar-lista-em-ordem-alfabetica-73489 né?

Não , um post eu pergunto sobre ordenação de lista por ordem alfabética e nesse eu falo sobre exibir apenas uma lista em que os integrantes são homens

Tem como colocar aqui o que tem dentro da sua lista mais ou menos como uma tabelinha.

O codigo esta assim no momento mas ainda nao funciona (nao aparece erro de sintaxe).

List<Pessoa> lista = new ArrayList<Pessoa>();
lista.add(new Pessoa("333", "Carlos", 15, Sexo.MASCULINO));
lista.forEach( p -> p.imprimirLista(lista, Sexo.MASCULINO));
    public void imprimirLista(List<Pessoa> lista, Sexo sexo) {
        if (sexo.getId() == 0) {
            lista.forEach(p -> p.imprimir());
        }
    }

Tenda executar o programa em modo debug indo linha por linha para achar o porque executou assim. Eu faço isso quando não executa de primeira e não dá erro de compilção.

solução!

Descobri o problema,agora esta funcionando normal.

Troquei aqui:

lista.forEach( p -> p.imprimirLista(lista,p.getGender()));

E tambem aqui:

    public void imprimirLista(List<Pessoa> lista, Sexo sexo) {
        if (sexo.getId() == 0) {
            imprimir();
        }
    }