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

Stream findFirst()

Tem um jeito melhor de imprimir valor do nome associado ao findFirst ?

        //exercicio
        cursos.stream()
           .filter(c -> c.getAlunos() > 50)
           .findFirst() ;

         System.out.println(cursos.stream().findFirst().get().getNome());
2 respostas
solução!

Oie James, tudo bem com você?

Consegui pensar em dois jeitos um pouco mais curtos que esse, segue os códigos abaixo:

Primeira opção:


class Curso {
    private String nome;
    private int alunos;

    public Curso(String nome, int alunos) {
        this.nome = nome;
        this.alunos = alunos;
    }

    public String getNome() {
        return nome;
    }

    public int getAlunos() {
        return alunos;
    }

    @Override
    public String toString() { // necessário sobrescrever o método toString
        // TODO Auto-generated method stub
        return nome;
    }

}



Optional curso = cursos.stream()
           .filter(c -> c.getAlunos() > 50)
           .findFirst();

System.out.println(curso.get());

// irá printar "C"

Segunda opção:


class Curso {
    private String nome;
    private int alunos;

    public Curso(String nome, int alunos) {
        this.nome = nome;
        this.alunos = alunos;
    }

    public String getNome() {
        return nome;
    }

    public int getAlunos() {
        return alunos;
    }

    @Override
    public String toString() { // necessário sobrescrever o método toString
        // TODO Auto-generated method stub
        return nome;
    }

}

System.out.println(cursos.stream()
           .filter(c -> c.getAlunos() > 50)
           .findFirst().get());

// irá printar "C"

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!

System.out.println(curso.get());

Valeu Igor! senti que estava fazendo caminho comprido. Vou revisar essas aulas.

James