Maps

Types de données et exceptions en Java

Jim White

Java Developer

Les maps sont des tables d'indexation

  • Les maps servent de tables d'indexation
    • Stocker une « valeur » à une « clé » donnée
    • Utiliser la « clé » pour récupérer la « valeur » stockée
  • Exemple : appeler un cabinet médical
    • On retrouve un dossier de santé (l'objet valeur) à partir d'un nom/date de naissance (la clé)

Les maps servent de structure d'indexation, comme quand un cabinet médical demande votre nom et votre date de naissance pour retrouver votre dossier

Types de données et exceptions en Java

Interface Map

  • L'interface Map définit les opérations sur les paires clé/valeur
    • Comment stocker ou « put » une valeur à une clé donnée
    • Comment « remove » la valeur à la clé dans la Map
    • Comment récupérer la valeur à partir d'une clé
  • Plusieurs implémentations de Map au comportement similaire
    • Une implémentation courante de Map est HashMap
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Types de données et exceptions en Java

Clés et valeurs d'une HashMap

Les clés et valeurs d'une Map ou HashMap peuvent être de mêmes ou de différents types

Types de données et exceptions en Java

Construction d'une HashMap

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • Le constructeur paramétré/générique d'une HashMap exige deux types

    • Le premier type = type de la clé

      Le premier paramètre générique de HashMap est pour les clés

    • Le second type = type de la valeur

      Le second paramètre générique de HashMap est pour les valeurs

Les types clé et valeur dans les génériques indiquent le type des clés et des valeurs

  • Nécessite l'import de java.util.HashMap
Types de données et exceptions en Java

Méthodes HashMap

  • Utilisez .put(key,value) pour ajouter des paires clé/valeur à la table
  • Utilisez .remove(key) pour supprimer la paire clé/valeur à cette clé
  • Utilisez .get(key) pour récupérer la valeur à la clé
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Types de données et exceptions en Java

Collections

  • java.util.Collections est une classe utilitaire
  • Sert à trier, remplir, copier, rechercher, etc.
    • Ne propose que des méthodes static
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Types de données et exceptions en Java

Méthodes Collection

  • Ajouter plusieurs objets à une List
    • addAll(List list, Object a, b, ...)
  • Renvoyer le nombre d'occurrences d'un objet dans une collection
    • frequency(Collection c, Object o)
  • Réordonner les objets d'une List
    • reverse(List list)
  • Trier les objets d'une List
    • sort(List list)
  • Remplacer tous les objets d'une List par un autre objet
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Types de données et exceptions en Java

Arrays

  • Il faut parfois convertir un tableau (p. ex. int[]) en List
    • Les tableaux Java ne sont pas redimensionnables ; on peut devoir ajouter/retirer des éléments
    • List offre plus de fonctionnalités (recherche, tri, etc.)
  • java.util.Arrays est une autre classe utilitaire
    • Permet de convertir un tableau Java en List
Types de données et exceptions en Java

Exemple Arrays

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Types de données et exceptions en Java

Passons à la pratique !

Types de données et exceptions en Java

Preparing Video For Download...