3
respostas

Imprimir a média

Teria algum outro jeito de imprimir a média sem ter que criar um OptionalDouble?

OptionalDouble teste = cursos.stream() .mapToInt(c -> c.getQntAlunos()) .average(); System.out.println(teste);

3 respostas

Ricardo se você utilizar a api de stream para fazer isso terá que mapear o retorno para um OptionalDouble porque é o retorno do método.

Mas se você quiser pode implementar da sua própria maneira, com foreach e tudo mais. Mas tem uma solução ainda mais simples utilizando do método getAsDouble() para retornar um valor double.

Double teste = cursos.stream() .mapToInt(c -> c.getQntAlunos()) .average().getAsDouble();

Entendi, mas do mesmo jeito vc criou uma variavel temporaria, eu queria saber se tem como imprimir direto, algo como:

cursos.stream() .mapToInt(c -> c.getQntAlunos()) .average() .forEach(c -> System.out.println(c.getNome()));

Olá Ricardo, da seguinte forma acredito que atenda a tua necessidade:

        cursos.stream() 
            .mapToInt(c -> c.getQntAlunos()) 
            .average()
            .ifPresent(media -> System.out.println(media));

Atte.