Skip to main content

Utilisation de collections

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Déclarer et initialiser une liste
  • Expliquer deux manières d’ajouter des éléments à une liste
Saviez-vous que vous pouvez bénéficier des connaissances d’un expert ? Regardez cette vidéo pour en apprendre davantage sur les thèmes abordés dans ce module :

Collections

Une collection est un type de variable pouvant stocker plusieurs éléments. Dans notre exemple avec le thé, nous avons un sucrier contenant plusieurs morceaux de sucre. Le sucrier constitue une collection et les morceaux de sucre sont, eux, des éléments stockés dans celle-ci.

Un sucrier étiqueté « collection ». Les morceaux de sucre dans le sucrier sont étiquetés « éléments de la collection ».

Bien qu’il existe trois types de collections Apex (listes, ensembles et cartes), nous aborderons uniquement les listes dans ce module.  

Listes

Une liste Apex est un groupe ordonné d’éléments du même type, un peu comme une liste de courses. 

  1. Thé
  2. Sucre
  3. Miel
  4. Lait

Chaque élément de la liste de courses est une chaîne de caractères et chacun d’entre eux a une position dans la liste. Pour déclarer une liste, vous aurez besoin de quelques outils. Vous allez utiliser le mot réservé « list », le type de données (tous les éléments doivent être du même type) que vous ferez figurer entre les caractères <>, ainsi que le mot réservé « new ». Il est obligatoire de faire figurer des parenthèses à la fin de cette instruction. 

List<String> groceries = new List <String>();

Remarque

Remarque

Les mots réservés sont des mots de programmation ayant une signification particulière. Ils ne peuvent pas être utilisés comme noms de variables. Si vous essayez de nommer une variable en utilisant des mots tels que « new », « string », « false », « null », parmi bien d’autres, cela engendrera une erreur de syntaxe.

Déclaration d’une liste vide

  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
    //Declare the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is an empty list, ().
    System.debug('Groceries Value: ' + groceries);
  3. Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
  4. Cochez la case Déboguer uniquement en bas de la fenêtre.

Lorsque vous avez exécuté le code, vous avez probablement remarqué que le résultat était (). Comme vous n’avez rien ajouté à la liste, le résultat est vide. Lorsque vous avez déclaré la liste groceries, vous avez créé un emplacement vide, prêt à accueillir des éléments. 

Un grand emplacement vide intitulé groceries (courses).

Déclaration d’une liste avec une taille définie

Si nous connaissons la longueur exacte que doit avoir notre liste, nous pouvons définir sa taille lorsque nous la déclarons. Pour cela, il suffit d’inclure sa taille entre crochets, [ ], après le type de données, comme suit : 

String[] groceries = new String[4];

Remarque

Remarque

Il existe différentes manières de déclarer des listes dans Apex. Cet exemple utilise la notation de tableau afin de définir la taille de la liste.

Ce code déclare une liste de chaînes appelée « groceries » et définit sa taille à 4 chaînes. La liste « groceries » vide ressemble à ceci :

Un espace nommé groceries (courses), divisé en quatre emplacements.

La position séquentielle d’un élément est un nombre appelé index. L’index sert à référencer les éléments. Vous avez probablement appris à compter en commençant par le chiffre un. Cependant, dans de nombreux langages de programmation, on compte à partir de zéro ! Notre liste se présente donc comme suit lorsque nous écrivons notre code Apex. 

  1. Thé
  2. Sucre
  3. Miel
  4. Lait

L’index utilisé pour désigner un élément de la liste sera le 0 pour Tea, le 1 pour Sugar, le 2 pour Honey et ainsi de suite. 

Pour référencer un élément de la liste par son index (sa position dans la liste), vous devez procéder comme suit :

Groceries[0];

  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
    String[] groceries = new String[4];
    System.debug('Initialized groceries: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
  4. Cochez la case Déboguer uniquement en bas de la fenêtre.

La valeur du premier élément de la liste est « null ». Ajoutons maintenant quelques éléments à la liste.

Initialisation d’une liste

Initialiser une liste consiste à lui attribuer des valeurs initiales. Il existe deux manières d’ajouter des éléments à une liste :

  1. En déclarant et en initialisant une liste :
    //Sets the first item in the list to 'Tea'
    List<String> groceries = new List<String>{'Tea'}; 
  2. En déclarant une liste vide et en y ajoutant des valeurs ultérieurement :
    List<String> groceries = new List<String>();
    groceries.add('Tea');

Déclaration et initialisation d’une liste

La syntaxe employée pour initialiser une liste avec des valeurs est semblable à celle utilisée pour déclarer une liste vide. Seule différence : des parenthèses ( () ) sont utilisées à la place des accolades ( { } ) pour ajouter des valeurs. 

  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
    //Declare the groceries list
    List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'};
      
    //The output for this statement is Tea, Sugar, Honey, Milk
    System.debug('Groceries: ' + groceries);
  3. Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
  4. Cochez la case Déboguer uniquement en bas de la fenêtre.

Déclaration d’une liste vide et ajout ultérieur de valeurs

Toutefois, comment procéder si vous souhaitez ajouter des éléments ultérieurement ? Apex fournit des méthodes vous permettant de travailler avec des listes. Utilisons la méthode « add » pour ajouter des éléments à la liste groceries.

  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
    //Create the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is null
    System.debug('Groceries: ' + groceries);
      
    //Use the add method to add an element to the list
    groceries.add('Tea');
    groceries.add('Sugar');
    groceries.add('Honey');
    groceries.add(2, 'Milk');
      
    //The output for this statement is Tea, Sugar, Milk, Honey
    System.debug('Groceries: ' + groceries);
  3. Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
  4. Cochez la case Déboguer uniquement en bas de la fenêtre.

Un espace nommé Groceries (Courses), subdivisé en quatre emplacements comportant chacun un ingrédient : du thé (Tea), du sucre (Sugar), du lait (Milk) et du miel (Honey).

Avez-vous remarqué le point (« . ») entre groceries et add ? Apex utilise ce qu’on appelle la notation pointée. Cette dernière a plusieurs fonctions. À la ligne 8, nous connectons la méthode add (fournie par Apex) à la liste groceries avec un point, afin d’ajouter un élément (Tea) à la liste.

La ligne 11 présente une autre manière d’ajouter un élément à une liste en l’insérant dans un index (position) spécifique : 

groceries.add(2, ‘Milk’);

Plus vous utiliserez du code Apex, mieux vous saurez déterminer quelle méthode utiliser. Pour le moment, les bases que vous apporte cette unité peuvent vous aider à démarrer. 

Démystification des listes

Selon la manière utilisée pour ajouter des éléments à une liste, les résultats produits sont légèrement différents, et parfois même inattendus. Essayez de réaliser l’exercice suivant.

  1. Dans la Developer Console, cliquez sur Débogage | Ouvrir la fenêtre d’exécution anonyme.
  2. Copiez le code suivant et collez-le dans la fenêtre Entrer du code Apex.
    String[] groceries = new String[4];
    System.debug('Groceries: ' + groceries);
      
    groceries.add('Tea');
    groceries.add('Sugar');
    System.debug('Added 2 items: ' + groceries);
      
    groceries.add(1, 'Honey');
    System.debug('Added Honey in index 1: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Cochez la case Ouvrir le journal, puis cliquez sur Exécuter. Le journal d’exécution s’ouvre et affiche le résultat de l’exécution de votre code.
  4. Cochez Déboguer uniquement en bas de la fenêtre.

Voilà des résultats intéressants :

Quatre événements de journal de débogage. La ligne 2 indique Initialized groceries: (null, null, null, null) La ligne 6 indique Added 2 items: (null, null, null, null, Tea, Sugar) La ligne 9 indique : Ajout de Honey dans l’index 1 : (null, Honey, null, null, null, Tea, Sugar). La ligne 11 indique : Item 0: null

Lors de l’ajout des deux chaînes des lignes 4 et 5, nous n’avions pas spécifié d’index. Les éléments Tea et Sugar ont donc été ajoutés à la fin de la liste, augmentant ainsi sa taille de quatre à six chaînes. À la ligne 8, nous avions explicitement spécifié l’index 1 pour Honey, alors pourquoi cet élément n’est-il pas en premier dans la liste ? Rappelez-vous : en programmation, on commence toujours à compter à partir de 0 au lieu de 1. À la ligne 11, le premier index de la liste est 0, qui contient actuellement une valeur null

L’écriture de code est très semblable à la résolution de problèmes mathématiques : il existe différentes manières de résoudre une même équation. Dans cette unité, vous avez appris qu’il existe plus d’une façon de travailler avec des listes dans Apex. Que vous souhaitiez déclarer une liste, l’initialiser ou faire référence à une valeur spécifique dans celle-ci, c’est à vous de choisir comment procéder. Vous vous sentez submergé par le nombre d’options s’offrant à vous ? Ne vous inquiétez pas. Une fois que vous serez à l’aise avec Apex, vous pourrez essayer différentes méthodes et découvrir celles qui fonctionnent le mieux selon les circonstances.

Ressources

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires