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

Aula 5 - Java 8 - Exercício 6

Como faço para imprimir a média conforme resultado do exercício.

cursos.stream() .mapToInt(c -> c.getAlunos() .average();

Tentei dar um forEach, mas ele não aceitou porque é um OptionalDouble. Criei uma variável e imprimi no System, como ficou:

OptionalDouble media = cursos.stream() .mapToInt(c -> c.getAlunos()) .average(); System.out.println("A media dos alunos é:" + media);

Porém o resultado é:

A media dos alunos é:OptionalDouble[90.75]

Aparece esse OptionalDouble no resultado.

Como posso fazer?

3 respostas
solução!

O optinal é um objeto que pode conter um valor ou não, essa seria uma abordagem.

cursos.stream() 
    .mapToInt(c -> c.getAlunos())
     .average()
     .ifPresent(System.out::println);

Mas não é a única,da uma olhada na documentação https://docs.oracle.com/javase/8/docs/api/java/util/OptionalDouble.html

Legal, obrigada

Oi Gizele, o OptionalDouble possui um método chamado getAsDouble que retorna o valor diretamente.

Os Optionals ajudam na questão de retornos nulos.