Comme à chaque rendez-vous, l’article de la semaine ! J’aurais souhaité vous présenter mon application sur laquelle je travaille actuellement mais je rencontre encore quelques difficultés dessus. Tant pis, je vous la présenterai une prochaine fois. Cette semaine a été enrichissante pour moi, j’ai revu des anciens professeurs. On n’a pas mal échangé et d’ailleurs un de mes professeurs ma dit la phrase suivante qui m’a fait réfléchir “La programmation c’est juste un outil, pour faire tout un tas de projets différents”. Je me suis beaucoup retrouvé dans ces propos, j’ai envie d’explorer tellement de domaines et android va me permettre de toucher tout un panel de thèmes différents.
D’ailleurs, ça m’a donné une petite idée de prochaine application que je pourrai réaliser et qui potentiellement pourrai aider une ou des personnes dans le domaine de la restauration. Ce principe de rendre un service à quelqu’un me motive et me rend fiers. Ce projet nécessite de comprendre de nouvelle notions dans la programmation Android. Je vous le présenterai, quand il sera mûrement réfléchi ! Dans cet article, je vais vous présenter les tableaux en kotlin, comment les initialiser et comment les manipuler.
Les Tableaux
Un tableau c’est un conteneur de variable. Les variables qu’il contient sont du même type et sont stockées dans des cases. Les cases représentent des adresses en mémoire. Lorsque qu’on veut interagir avec l’une de ces cases (écriture, lecture, modification), le tableau va venir pointer (aller à l’adresse où se trouve) le contenu en mémoire de la case en question.
Les différents types de tableau
Les tableaux comme les variables doivent être définis par un type. Les types sont les mêmes que les variables à savoir Int, Float, Long, Double, Char, Byte, Short, Boolean. Vous pouvez les retrouver sur l’article “Mes découvertes sur kotlin”.
Un tableau peut également contenir un objet :
L’écriture du type reste tout de fois différente pour un objet. Le mot-clé “Array” est préfixé avant son type. En Kotlin, les types Int, Float, Long, Double, Char, Byte, Short, Boolean sont également représenté en tant qu’objet. Par conséquent on peut également écrire nos tableaux comme ci-dessous :
Un tableau s’est aussi une variable, il peut également contenir un tableau. Je vous laisse imaginer, toutes les idées possibles que l’on peut faire avec un tableau.
l’initialisation d’un tableau
L’initialisation est très simple, on utilise la méthode qui se nomme le type de notre tableau suivie de “ArrayOf” pour les variables qui ne sont pas des objets. Pour un tableau d’objet on utilise seulement la méthode “arrayOf”.
On peut également venir insérer dans une case bien définit, la valeur que l’on souhaite de deux façons différentes :
- La première façon avec la méthode set() qui demande en paramètre le numéro de la case et la valeur qu’on souhaite lui attribuer.
- La deuxième façon avec le numéro de la case entre crochets puis le symbole “=” suivi de la valeur de la case.
Ps : Faite attention, la première case d’un tableau est toujours la case 0.
Parcourir un tableau
Il y a plusieurs façons de parcourir un tableau. Je vais vous présenter les deux façons les plus utiles pour parcourir un tableau :
- Le forEach() c’est une méthode similaire à la boucle “for”. Cette méthode va nous permettre de parcourir l’ensemble des éléments de notre tableau (itération). Chaque itération correspond à une case de notre tableau qu’on peut venir manipuler. L’élément “it” correspondra à l’itération courante et viendra s’incrémenter pour parcourir l’ensemble du tableau. On peut considérer que la variable “it” correspond à la case du tableau n°[ it].
- La deuxième façon souvent utilisée pour parcourir un tableau s’avère être la méthode classique avec la boucle “for”. On incrément un entier qui correspondra également à l’itération en cours. On vient comparer cet entier au nombre total de case de notre tableau. Tant que l’itération en cours est inférieure à notre nombre, la boucle continue et l’itération s’incrémente.
Le tri d’un tableau
Il existe de nombreuses manières de trier un tableau, vous pouvez le faire vous-même ou bien faire appel à des méthodes à votre disposition.
Le tri fais-maison
- Si vous souhaitez trier un tableau avec votre propre condition, vous pouvez utiliser le code ci-dessous :
Dans notre exemple, on parcourt notre tableau et à chaque fois que notre solution s’avère vraie, on vient intervertir la case suivante par la case en cours. La variable temporaire joue le rôle de tampon. Lorsque l’on vient stocker la valeur de la case suivante, on vient écraser et remplacer la donnée de la case. Il est donc utile de stocker la donnée dans cette variable temporaire avant que la donnée n’existe plus.
L’appel aux méthodes de tri
Pour trier un tableau, il existe également des méthodes qu’on peut appeler directement :
- sorted() : Cette méthode va venir trier le tableau selon l’ordre naturel (exemple par ordre alphabétique, par ordre croissant).
- sortedArrayDescending() : Cette méthode va venir trier le tableau dans l’ordre inverse (exemple par ordre alphabétique inversé, par ordre décroissant).
- sortedArrayWith() : Cette méthode va venir trier le tableau en fonction d’un comparateur qu’on lui indique en paramètre. Le comparateur est un objet “companion” c’est-à-dire associée à un autre objet. Cette méthode nécessite d’avoir des connaissances préalables sur les objets “companion”.
Il existe également d’autres méthodes et d’autres conteneurs, comme les “list”, les “arrayList”, les “map”, ect… Ils feront le sujet de prochains articles, en attendant je vous invite à les tester.
Merci d’avoir lu ! Maintenant, si vous avez aimé le contenu de l’article, si vous connaissez une personne à qui cet article peut intéresser, n’hésitez pas à le liker et à le partager sur les réseaux sociaux. Si vous souhaitez me faire part de vos remarques, de vos problèmes, de vos suggestions de prochain article ou tout simplement de votre soutien n’hésitez pas à m’en faire part dans les commentaires, je vous en remercie.
- 14Partages
Merci beaucoup pour cet article. J’avais complétement raté cette partie là semaine dernière.