Olá, Gabriel! Como vai?
O método findAny() no contexto de streams paralelos não utiliza busca binária nem é uma busca aleatória no sentido tradicional. Em vez disso, ele é projetado para encontrar qualquer elemento que satisfaça uma condição, sem garantir qual elemento será retornado quando há múltiplos candidatos possíveis.
Quando você usa findAny() em um parallelStream(), a operação é executada em várias threads ao mesmo tempo. Isso significa que qualquer uma dessas threads pode encontrar um elemento que satisfaça a condição e retornar esse elemento. Por isso, o resultado pode variar a cada execução, como você observou com os números 50 e 70.
Portanto, o comportamento de findAny() em um stream paralelo é determinado pela concorrência e não por um algoritmo de busca específico como a busca binária. Ele simplesmente retorna um elemento que atende à condição o mais rápido possível, sem se preocupar com a ordem.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.