1
resposta

Qual a utilidade do .stream()?

Qual a utilidade do .stream()?

1 resposta

O método stream() é uma função de extensão disponível em Kotlin para coleções (como listas, conjuntos e mapas) que retorna um objeto Stream da coleção. O objeto Stream é uma representação de uma sequência de elementos que pode ser processada de forma sequencial ou paralela, o que pode ser útil para acelerar o processamento em aplicações que lidam com grandes quantidades de dados.

Uma das principais vantagens de usar o método stream() é que ele permite a realização de operações funcionais em uma coleção de forma declarativa e fluente. Isso significa que é possível encadear várias operações de forma concisa e legível, sem precisar escrever loops ou condicionais explícitos.

fun main() {
    val list = (1..1000000).toList()

    // Usando o método stream()
    val sum = list.stream()
        .filter { it % 2 == 0 }
        .map { it * it }
        .reduce { x, y -> x + y }

    println(sum)
}

Nesse exemplo, como a lista é bastante grande, é interessante usar o stream() para ganhos de perfomance, pois podemos encadear as chamadas de funções e por ser um objeto do tipo Stream essas funções executam em paralelo.