Sans perdre de temps, passons à autre chose pour comprendre de quoi nous voulons vraiment discuter dans cet article. Comme le titre l’indique « Regroupement », qu’est-ce que le regroupement ?
En programmation, le regroupement est utilisé pour regrouper des collections en fonction de certaines caractéristiques. Disons que nous avons une liste de nos prochaines tâches pour la semaine prochaine. Nous voulons regrouper les tâches selon le premier caractère du nom.
Dans de tels cas, le « regroupement » aide beaucoup. Nous pouvons regrouper les éléments en fonction de la longueur, du type, de la catégorie d’objet, etc.
D’accord, voyons donc comment cela se fait dans Kotlin.
En utilisant par groupe() Fonction d’extension Kotlin. Que se passe-t-il lorsque nous utilisons cette fonction :
3. Comme nous pouvons le voir dans le programme ci-dessus, le résultat renvoyé est en fait une carte avec des accolades extraite de l’argument lambda avec groupBy() et les valeurs sont les listes auxquelles l’argument de résultat est appliqué.
Une autre chose que nous pouvons faire avec groupBy() passe un autre argument lambda également appelé ‘ Fonction de transformation de valeur ‘. Qu’est ce que ça fait?
Il transforme les valeurs réelles de la collection et mappées avec des clés (tirées du premier argument lambda) en une carte de résultat.
D’accord, il s’agit donc de regrouper une collection en fonction de certains critères.
Maintenant, que se passe-t-il si nous voulons effectuer une opération pour tous les groupes à la fois. Je veux dire, je veux que le nombre de tâches soit regroupé en fonction du premier caractère de leur nom. Comme vous pouvez le voir, je vous demande d’appliquer l’opération à tous les groupes.
Nous pouvons simplement penser à itérer sur la carte résultante, mais cela ajoute beaucoup de confusion et même après cela, il n’est pas clair si nous pourrons imprimer le premier caractère avec le nombre d’éléments commençant par ce caractère.
Ainsi, dans de tels cas, Kotlin nous a fourni une fonction groupingBy() qui nous permet d’appliquer l’opération à tous les groupes à la fois et de renvoyer un objet ‘Grouping’. Je vous demande à nouveau de vous concentrer sur votre type de rétroaction. Il ne renverra pas la carte, il renverra un objet ‘Grouping’. Voyons-le en action.
Comment pouvons-nous voir, chaqueCompte() est utilisé pour effectuer des opérations sur tous les groupes. Cela aidera à obtenir le nombre d’arguments lambda. Nous pouvons également effectuer d’autres opérations. Vous pouvez voir la documentation officielle pour la référence “https://kotlinlang.org/docs/collection-grouping.html”
Je terminerai cet article en montrant la différence entre le type de retour de par groupe() ET regroupementPar(). Regardez l’image ci-dessous, notez la différence entre la première et la deuxième sortie. La première sortie est le nombre de cartes de type et l’autre est un objet de regroupement. C’est la principale différence entre groupBy() et groupingBy().
J’espère donc que vous serez maintenant en mesure de comprendre les principes fondamentaux du regroupement de collections et comment effectuer des opérations dessus.
PS : J’ai eu une bonne idée d’un des développeurs que je suis sur Twitter pour inclure quelques exemples complexes pour faire comprendre aux lecteurs l’utilisation du groupement Kotlin dans le monde réel.
Ainsi, comme il l’a suggéré, j’ai donné l’exemple à regroupez les tâches « Terminées » et « Incomplètes » dans une liste de tâches.
Bon, alors comprenons comment cela peut être fait. c’est une meilleure idée créer une classe de données pour le nom de la tâche et l’état d’achèvement de la tâche. Il sera utile lors de la création d’une liste d’objets de classe Data. Le regroupement est maintenant facile.
Maintenant, nous devons réfléchir à la façon dont nous pouvons grouper. Nous avons deux manières :
Dans ce cas, nous utiliserons ‘Value Transform’ et nous insérerons deux arguments lambda afin que nous ne puissions voir que le nom des tâches en fonction de leur état d’achèvement.
Comme nous pouvons le voir dans le programme ci-dessus, nous utilisons deux arguments lambda pour obtenir le résultat pur et désiré. Nous avons utilisé ‘ Regrouper par‘ainsi que pour obtenir le nombre de tâches terminées et incomplètes.
Cet exemple nous a aidés à comprendre l’application réelle du regroupement et comment il peut être utilisé pour divers cas d’utilisation.
Tout est donc fait pour le ‘Kotlin Group’ et une mention spéciale à Matt Mpour m’avoir demandé d’inclure cet exemple.
Feu gratuit introduit de nouveaux personnages avec une compétence distincte après chaque mise à jour…
Dans une étrange tournure des événements qui semblerait insensée à quiconque vivait il y a…
Google déploie aujourd'hui la mise à jour très attendue qui permettra aux utilisateurs de…
Pour célébrer le lancement de Gran Turismo 7, nous nous sommes associés à des…
Une vue de la Space Needle depuis l'immeuble de bureaux d'Apple à Seattle au…
Tundra Tracker, une rondelle de suivi SteamVR née d'un Kickstarter réussi l'année dernière, a…