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

Dúvida no Ex. 4 da Aula 5 - Mais Streams, Collectors e APIs

Alguem pode me dar um exemplo, de como usar esse método , onde ou média ou exception. Eu tentei e nada rsrs.

lista.stream().sorted(curo)
                .forEach(curso -> System.out.println(curso.getNome()));

        OptionalDouble media = cursos.stream()
                .filter(c -> c.getAlunos() >= 100).mapToInt(Curso::getAlunos)
                .average();

media.orElseThrow(exceptionSupplier)
3 respostas

outra duvida é o map, da para fazer de chave para objeto

map

como ficaria nesse caso a baixo

    Map<String, Integer> mapa = cursos
                .stream()
                .filter(c -> c.getAlunos() > 100)
                .collect(Collectors.toMap(c -> c.getNome(), c -> c.getAlunos()));

        Integer integer = mapa.get("Java 8");
        System.out.println(integer);

eu queria , dado um valor, esse valor representa o objeto Curso todo.

a segunda eu mesmo consegui resolver ^^

    Map<String, Curso> mapa = cursos
                .stream()
                .filter(c -> c.getAlunos() > 100)
                .collect(Collectors.toMap(c -> c.getNome(), c -> c));
solução!

@Marcos, se você tiver ao menos um curso com mais de 100 alunos, o método media.orElseThrow(exceptionSupplier) nunca vai lançar exceção. O caso em que isso ocorre é quando, após filtrar sua lista de cursos, ela fique vazia.

Calcular a média dos valores de um conjunto vazio vai lançar a exceção que você procura.