Ce Que Java 8 Flux De Données.recueillir les équivalents sont disponibles dans la norme Kotlin bibliothèque?

Dans Java 8, il est Stream.collecter qui permet à des agrégations sur les collections. Dans Kotlin, il n'en existe pas de la même manière, d'autres que peut-être qu'une collection de fonctions d'extension dans la stdlib. Mais il n'est pas clair ce que les équivalences pour les différents cas d'utilisation.

Par exemple, à la haut de la JavaDoc pour Collecteurs sont des exemples écrits pour Java 8, et en cas de portage à Kolin, vous ne pouvez pas utiliser le Java 8 classes lorsque sur une autre version du JDK, de sorte que probablement ils doivent être rédigés de manière différente.

En termes de ressources en ligne montrant des exemples de Kotlin collections, ils sont généralement trivial et ne pas vraiment comparer pour le même cas d'utilisation. Ce sont de bons exemples qui correspondent vraiment à des cas tels que documentés pour Java 8 Stream.collect? La liste il y a:

  • Accumuler des noms dans une Liste
  • Accumuler des noms dans un TreeSet
  • De convertir des éléments de chaînes et de les enchaîner, séparés par des virgules
  • Calculer la somme des salaires des employés
  • Les employés du groupe par département
  • Calculer la somme des salaires par département
  • Partition étudiants dans la réussite et l'échec

Avec des détails dans la JavaDoc lien ci-dessus.

Remarque: cette question est volontairement écrit et répondu par l'auteur (Auto-Répond À Des Questions), de sorte que le idiomatiques les questions les plus fréquemment posées Kotlin thèmes sont présents dans la. Aussi, pour clarifier certains très vieux réponses écrites pour les alphas de Kotlin qui ne sont pas précises pour le courant de la journée Kotlin.

  • Dans le cas où vous n'avez pas d'autre choix que d'utiliser collect(Collectors.toList()) ou similaire, vous pourriez frapper cette question: stackoverflow.com/a/35722167/3679676 (le problème, avec les solutions de contournement)