Tables de hachage

Types de données et exceptions en Java

Jim White

Java Developer

Les maps sont des tables d'association

  • Les maps servent de tables d'association
    • Stocker une « valeur » à une « clé » donnée
    • Utiliser la « clé » pour retrouver la « valeur »
  • Exemple : appeler une clinique
    • On repère un dossier de santé (l'objet valeur) à partir du nom et de la date de naissance (la clé)

Les maps servent de structure de recherche, comme quand un cabinet médical demande votre nom et votre date de naissance pour trouver votre dossier

Types de données et exceptions en Java

Interface Map

  • L'interface Map définit des opérations sur les paires clé-valeur
    • Comment stocker ou « put » une valeur à une clé précise
    • Comment « remove » la valeur à la clé depuis la Map
    • Comment récupérer la valeur à partir d'une clé
  • Plusieurs implémentations de Map au comportement similaire
    • Une implémentation populaire 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 du même type ou de types différents

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 = le type de la clé

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

    • Le second type = le 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 définissent le type de données des clés et des valeurs

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

Méthodes de HashMap

  • Utilisez .put(key,value) pour ajouter des paires clé-valeur
  • Utilisez .remove(key) pour retirer la paire à cette clé
  • Utilisez .get(key) pour récupérer la valeur à cette 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 d'appoint
  • Sert pour trier, remplir, copier, rechercher, et plus
    • Ne contient 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 de Collection

  • Ajouter plusieurs objets à une List
    • addAll(List list, Object a, b, ...)
  • Obtenir le nombre d'occurrences d'un objet dans une collection
    • frequency(Collection c, Object o)
  • Inverser l'ordre des 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 fonctions (recherche, tri, etc.)
  • java.util.Arrays est une autre classe d'appoint
    • Permet de convertir un tableau Java en List
Types de données et exceptions en Java

Exemple avec 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...