Utilizando o Stream API e o conceito de Maps, peek, findFirst e demais recursos', como você criaria um fluxo que filtra as transações com valores superiores a 5000, imprime uma espécie de log com peek, busca a primeira destas transações encontradas e coleta os resultados em um Set?
transacoes.stream()
.filter(t -> t.getValor() > 5000)
.peek(System.out::println)
.collect(Collectors.toSet()).stream()
.findFirst();
Olá pessoal, minha duvida é quando vc faz um collect em um set que vc finaliza um stream e depois iniciar uma outra stream em cima do resultado do collect para poder pergar o primeiro resultado com findFirst ? Não não conseguir entender esse fluxo, e do porque fazer isso ?
Optional<Transacao> resultado = transacoes.stream()
.filter(t -> t.getValor() > 5000)
.findFirst();
resultado.ifPresentOrElse(
r -> System.out.println("O primeiro valor e: " + r),
() -> System.out.println("Nenhum Valor encontrado!")
Assim eu tenho o mesmo resultado sem complicar. Claro que não vai ser um set, mas se for pra mostrar o primeiro resultado da operação fazendo todo tratamento pra saber se existe.