Java HashMap

Java 集合框架Java Collections Framework

HashMap est une table de hachage qui stocke des associations clé-valeur.

HashMap implémente l'interface Map, stocke les données en fonction de la valeur HashCode de la clé, offre une vitesse d'accès très rapide, autorise au plus un enregistrement avec une clé null et ne prend pas en charge la synchronisation des threads.

HashMap n'est pas ordonné, c'est-à-dire qu'il ne conserve pas l'ordre d'insertion.

HashMap hérite d'AbstractMap et implémente les interfaces Map, Cloneable et java.io.Serializable.

Les types de clé et de valeur de HashMap peuvent être identiques ou différents. Ils peuvent être des clés et des valeurs String, ou des clés Integer et des valeurs String.

Les éléments dans HashMap sont en réalité des objets. Certains types de base courants peuvent utiliser leurs classes wrapper.

Le tableau des classes wrapper correspondant aux types de base est le suivant :

Type de baseType de référence
booléenBoolean
octetByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCaractère

La classe HashMap se trouve dans le package java.util. Vous devez l'importer avant utilisation. La syntaxe est la suivante :

import java.util.HashMap; // 引入 HashMap 类

Dans l'exemple suivant, nous créons un objet HashMap Sites, avec des clés Integer et des valeurs String :

HashMap<Integer, String> Sites = new HashMap<Integer, String>();

Ajouter des éléments

La classe HashMap fournit de nombreuses méthodes utiles. Vous pouvez utiliser la méthode put() pour ajouter des paires clé-valeur :

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Ajouter des paires clé-valeur
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites);
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

{1=Google, 2=Example, 3=Taobao, 4=Zhihu}

L'exemple suivant crée un HashMap avec des clés String et des valeurs String :

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<String, String> Sites = new HashMap<String, String>();
        // Ajouter des paires clé-valeur
        Sites.put("one", "Google");
        Sites.put("two", "Example");
        Sites.put("three", "Taobao");
        Sites.put("four", "Zhihu");
        System.out.println(Sites);
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

{four=Zhihu, one=Google, two=Example, three=Taobao}

Accéder aux éléments

Nous pouvons utiliser la méthode get(key) pour obtenir la valeur correspondant à la clé :

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Ajouter des paires clé-valeur
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.get(3));
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

Taobao

Supprimer des éléments

Nous pouvons utiliser la méthode remove(key) pour supprimer la paire clé-valeur correspondant à la clé :

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Ajouter des paires clé-valeur
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.remove(4);
        System.out.println(Sites);
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

{1=Google, 2=Example, 3=Taobao}

Pour supprimer toutes les paires clé-valeur, vous pouvez utiliser la méthode clear :

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Ajouter des paires clé-valeur
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.clear();
        System.out.println(Sites);
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

{}

Calculer la taille

Pour calculer le nombre d'éléments dans un HashMap, vous pouvez utiliser la méthode size() :

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Ajouter des paires clé-valeur
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.size());
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

4

Parcourir un HashMap

Vous pouvez utiliser for-each pour parcourir les éléments d'un HashMap.

Si vous voulez seulement obtenir les clés, vous pouvez utiliser la méthode keySet(), puis obtenir la valeur correspondante via get(key). Si vous voulez seulement obtenir les valeurs, vous pouvez utiliser la méthode values().

Exemple

// Importer la classe HashMap
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // Créer l'objet HashMap Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Ajouter des paires clé-valeur
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        // Afficher la clé et la valeur
        for (Integer i : Sites.keySet()) {
            System.out.println("clé : " + i + " valeur : " + Sites.get(i));
        }
        // Retourner toutes les valeurs
        for(String value: Sites.values()) {
          // Afficher chaque valeur
          System.out.print(value + ", ");
        }
    }
}

L'exécution du code ci-dessus produit la sortie suivante :

key: 1 value: Google
key: 2 value: Example
key: 3 value: Taobao
key: 4 value: Zhihu
Google, Example, Taobao, Zhihu,

Méthodes Java HashMap

hashmap

La liste des méthodes Java HashMap couramment utilisées est la suivante :

Méthode Description
clear() Supprime toutes les paires clé/valeur dans le hashMap
clone() Copie un hashMap
isEmpty() Détermine si le hashMap est vide
size() Calcule le nombre de paires clé/valeur dans le hashMap
put() Ajoute des paires clé/valeur au hashMap
putAll() Ajoute toutes les paires clé/valeur au hashMap
putIfAbsent() Si la clé spécifiée n'existe pas dans le hashMap, insère la paire clé/valeur spécifiée dans le hashMap.
remove() Supprime le mappage de la clé spécifiée dans le hashMap
containsKey() Vérifie si un mappage pour la clé spécifiée existe dans le hashMap.
containsValue() Vérifie si un mappage pour la valeur spécifiée existe dans le hashMap.
replace() Remplace la valeur correspondant à la clé spécifiée dans le hashMap.
replaceAll() Remplace tous les mappages dans le hashMap par le résultat de l'exécution de la fonction donnée.
get() Obtient la valeur correspondant à la clé spécifiée
getOrDefault() Obtient la valeur correspondant à la clé spécifiée, et renvoie la valeur par défaut définie si la clé n'est pas trouvée.
forEach() Effectue l'opération spécifiée sur chaque mappage dans le hashMap.
entrySet() Renvoie une vue de type ensemble de toutes les associations dans le hashMap.
keySet() Renvoie une vue de type ensemble de toutes les clés dans le hashMap.
values() Renvoie toutes les valeurs présentes dans le hashMap.
merge() Ajoute des paires clé-valeur au hashMap
compute() Recalcule la valeur pour la clé spécifiée dans le hashMap
computeIfAbsent() Recalcule la valeur pour la clé spécifiée dans la hashMap, et l'ajoute à la hashMap si la clé n'existe pas
computeIfPresent() Recalcule la valeur pour la clé spécifiée dans la hashMap, à condition que la clé existe dans la hashMap.

Pour plus de méthodes de l'API, voir :https://www.example.com/manual/jdk11api/java.base/java/util/HashMap.html

Java 集合框架Java Collections Framework

Autres extensions