Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Método findAny

Não sei se entendi errado, mas quando imagino findAny me remete a algum valor, porém randômico, mas o que ocorre nos testes que executei é sempre retornar o mesmo resultado. O exemplo que utilizei paras os testes foi o mesmo da aula:

    List<Curso> cursos = new ArrayList<>();
    cursos.add(new Curso("Python", 45));
    cursos.add(new Curso("JavaScript", 150));
    cursos.add(new Curso("Java 8", 113));
    cursos.add(new Curso("C", 55));

    Optional<Curso> optional = cursos.stream()
           .filter(c -> c.getAlunos() > 100)
           .findAny();

    optional.ifPresent(c -> System.out.println(c.getNome()));

No meu caso só retorna palavra Javascript, porém se adiciono .paralllel(), antes do filter, só retorna Java 8.

O resultado é isso mesmo ou tem algum explicação para isso?

1 resposta
solução!

O findAny() permite que você encontre qualquer elemento de um Stream (não garante a ordem).

Por ex, findFirst retorna o primeiro elemento do stream, mas findAny() é livre para selecionar qualquer elemento no stream e pode não retornar o mesmo sempre.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software