Avatar ·

Quais são os análogos do Java 8 Stream.collect na biblioteca padrão do Kotlin?

Olá! Estou migrando de Java para Kotlin e estudando ativamente a biblioteca padrão. Em Java, eu usava frequentemente a Stream API, especialmente o método collect com vários coletores: Collectors.toList(), Collectors.groupingBy(), Collectors.joining() etc.

Por exemplo, em Java eu podia escrever:

List<String> names = people.stream()
    .filter(p -> p.getAge() > 18)
    .map(Person::getName)
    .collect(Collectors.toList());

Ou agrupar pessoas por idade:

Map<Integer, List<Person>> byAge = people.stream()
    .collect(Collectors.groupingBy(Person::getAge));

Em Kotlin, vejo que existem funções .filter, .map, mas não consigo encontrar um análogo direto de .collect(Collectors.toList()). Tentei escrever .toList(), mas não tenho certeza se isso é correto e eficiente.

Diga-me, quais funções na biblioteca padrão