Qual a utilidade do .stream()?
Qual a utilidade do .stream()?
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.