Dictionnaire Java

Rashmi Patidar 12 octobre 2023
Dictionnaire Java

En langage Java, le Dictionnaire est représenté à l’aide d’une structure de données appelée l’interface Map. La structure de données Map s’habitue à présenter les données dans des paires clé-valeur. La Map est une interface qui garde une trace de toutes les clés et des valeurs correspondantes. Un utilisateur peut récupérer la valeur en fonction d’une clé unique. L’interface Map possède les propriétés suivantes :

  1. Toutes les clés présentes dans la Map sont uniques.
  2. Il peut y avoir une clé unique correspondant à une ou plusieurs valeurs.
  3. Les clés sont les entités qui ne sont pas NULL.

Ci-dessous se trouve le bloc de code démontrant l’utilisation d’un dictionnaire ou Map en langage Java.

import java.util.HashMap;
import java.util.Map;

public class Dictionary {
  public static void main(String[] args) {
    System.out.println("Dictionary in Java");
    System.out.println("Using HashMap ");
    Map<String, String> map = new HashMap<>();
    map.put("1", "Letters with alphabetical Order with key A");
    map.put("2", "Letters with alphabetical Order with key B");
    System.out.println(map.get("2"));
  }
}

Le Map est une interface présente séparément, en dehors de la hiérarchie du framework Collection.

Le Map est présente dans le package java.util et montre comment une clé est mappée sur les valeurs. Il peut y avoir plusieurs implémentations sur une carte, à savoir :

  1. HashMap
  2. LinkedHashMap
  3. Hashtable

L’utilisation de chacun peut varier en fonction des besoins des utilisateurs pour la mise en œuvre.

Dans l’extrait de code ci-dessus, l’implémentation HashMap est utilisée. C’est la classe par défaut et largement utilisée dans le langage Java. La différence entre les trois types est définie ci-dessous.

HashMap est introduit dans la version Java 1.2, alors que Hashtable est une classe héritée. Il est thread-safe et, par conséquent, les opérations simultanées sont autorisées entre plusieurs threads, maintenant la cohérence du code. Mais le HashMap n’est pas thread-safe et n’autorise aucune concurrence.

En raison de la nature thread-safe de HashMap, ses performances sont plus rapides que celles de Hashtable. De plus, HashMap est infaillible et lève ConcurrencyException lorsque son instance est manipulée par plusieurs threads à la fois. En revanche, Hashtable semble infaillible. Le cas d’utilisation de LinkedHashMap réside lorsqu’un utilisateur souhaite enregistrer l’ordre d’insertion.

L’instance Map est créée à l’aide de la classe HashMap dans le bloc de code ci-dessus. Les opérations telles que get et put sont utilisées pour stocker et récupérer les valeurs spécifiques de l’instance. La méthode put prend deux paramètres qui sont la clé et sa valeur.

En interne, la clé est d’abord évaluée si elle est présente dans l’objet cartographique à l’aide de la fonction containsKey(). S’il est évalué à vrai, la valeur actuelle de la clé est remplacée par la nouvelle valeur. La méthode lève UnsupportedOperationException si l’opération définie n’est pas prise en charge par la Map avec la clé donnée.

La ClassCastException si la clé ou la valeur empêche le stockage de la clé, NullPointerException si la clé ou la valeur spécifiée est null et la Map n’autorise pas les clés ou les valeurs null. IllegalArgumentException si une propriété de la clé ou de la valeur empêche son stockage dans la Map.

Une fois la clé insérée dans la Map, elle est récupérée à l’aide de la fonction get. La fonction get prend un seul paramètre qui est la clé unique. Il lève ClassCastException et NullPointerException lorsque la clé est inappropriée ou si la clé spécifiée est null.

Ci-dessous se trouve la sortie de l’interface de la carte utilisant la classe HashMap.

Dictionary in Java Using HashMap Letters with alphabetical Order with key B
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn