Maison >Java >javaDidacticiel >Comment travailler avec Hashmap à Java

Comment travailler avec Hashmap à Java

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-25 04:15:09625parcourir

How to Work with HashMap in Java

Ce guide complet explore HashMap de Java, une structure de données robuste pour un stockage et une gestion efficaces des paires clé-valeur. Nous aborderons les méthodes fondamentales et fournirons des exemples pratiques pour consolider votre compréhension.


Comprendre HashMap

HashMap stocke les données sous forme de paires clé-valeur, offrant (en moyenne) une complexité en temps constant pour les opérations principales telles que put, get et remove. Les principaux avantages incluent :

  • Clés uniques : Chaque clé doit être unique ; les valeurs peuvent être dupliquées.
  • Types de données polyvalents : Les clés et les valeurs peuvent être n'importe quel type d'objet.
  • Emplacement du colis : Réside dans le java.util colis.
  • Gestion des valeurs nulles : Accepte null à la fois comme clé et comme valeur.

Exemple illustratif :

<code class="language-java">import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<Integer, String> myMap = new HashMap<>();

        // Adding entries
        myMap.put(1, "Apple");
        myMap.put(2, "Banana");
        myMap.put(3, "Cherry");

        // Retrieving a value
        System.out.println(myMap.get(1)); // Output: Apple
    }
}</code>

Création de HashMap

Le constructeur HashMap est simple :

<code class="language-java">HashMap<KeyType, ValueType> mapName = new HashMap<>();</code>

Exemple :

<code class="language-java">HashMap<String, Integer> wordCounts = new HashMap<>();</code>

Ici, String représente le type de clé et Integer le type de valeur.


Méthodes HashMap essentielles

Examinons les méthodes HashMap fréquemment utilisées :

1. put(K key, V value)

  • Fonctionnalité : Ajoute une paire clé-valeur. Si la clé existe, la valeur est mise à jour.
  • Exemple :
<code class="language-java">import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<Integer, String> myMap = new HashMap<>();

        // Adding entries
        myMap.put(1, "Apple");
        myMap.put(2, "Banana");
        myMap.put(3, "Cherry");

        // Retrieving a value
        System.out.println(myMap.get(1)); // Output: Apple
    }
}</code>

2. get(Object key)

  • Fonctionnalité : Récupère la valeur associée à la clé donnée. Renvoie null si la clé est absente.
  • Exemple :
<code class="language-java">HashMap<KeyType, ValueType> mapName = new HashMap<>();</code>

3. getOrDefault(Object key, V defaultValue)

  • Fonctionnalité : Récupère la valeur ; si la clé est manquante, renvoie le defaultValue.
  • Exemple :
<code class="language-java">HashMap<String, Integer> wordCounts = new HashMap<>();</code>

4. containsKey(Object key)

  • Fonctionnalité : Vérifie si la carte contient la clé spécifiée.
  • Exemple :
<code class="language-java">HashMap<Integer, String> myMap = new HashMap<>();
myMap.put(1, "Apple");
myMap.put(2, "Banana");
myMap.put(1, "Orange"); // Updates value for key 1
System.out.println(myMap); // Output: {1=Orange, 2=Banana}</code>

5. containsValue(Object value)

  • Fonctionnalité : Vérifie si la carte contient la valeur spécifiée.
  • Exemple :
<code class="language-java">System.out.println(myMap.get(1)); // Output: Orange
System.out.println(myMap.get(4)); // Output: null</code>

6. remove(Object key)

  • Fonctionnalité : Supprime l'entrée pour la clé donnée et renvoie sa valeur (ou null si elle n'est pas trouvée).
  • Exemple :
<code class="language-java">System.out.println(myMap.getOrDefault(4, "Default")); // Output: Default</code>

7. putIfAbsent(K key, V value)

  • Fonctionnalité : Ajoute la paire clé-valeur uniquement si la clé n'existe pas déjà.
  • Exemple :
<code class="language-java">System.out.println(myMap.containsKey(1)); // Output: true
System.out.println(myMap.containsKey(4)); // Output: false</code>

8. replace(K key, V value)

  • Fonctionnalité : Remplace la valeur de la clé uniquement si la clé existe.
  • Exemple :
<code class="language-java">System.out.println(myMap.containsValue("Orange")); // Output: true
System.out.println(myMap.containsValue("Grape")); // Output: false</code>

9. keySet()

  • Fonctionnalité : Renvoie un Set de toutes les clés de la carte.
  • Exemple :
<code class="language-java">System.out.println(myMap.remove(1)); // Output: Orange
System.out.println(myMap); // Output: {2=Banana}</code>

10. values()

  • Fonctionnalité : Renvoie un Collection de toutes les valeurs de la carte.
  • Exemple :
<code class="language-java">myMap.putIfAbsent(3, "Cherry"); // No change if key 3 exists
System.out.println(myMap);</code>

11. entrySet()

  • Fonctionnalité : Renvoie un Set de toutes les paires clé-valeur (Map.Entry).
  • Exemple :
<code class="language-java">myMap.replace(2, "Mango");
System.out.println(myMap);</code>

12. compute(K key, BiFunction remappingFunction)

  • Fonctionnalité : Met à jour la valeur à l'aide d'une fonction fournie.
  • Exemple : (Nécessite une BiFunction implémentation)
<code class="language-java">import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<Integer, String> myMap = new HashMap<>();

        // Adding entries
        myMap.put(1, "Apple");
        myMap.put(2, "Banana");
        myMap.put(3, "Cherry");

        // Retrieving a value
        System.out.println(myMap.get(1)); // Output: Apple
    }
}</code>

13. merge(K key, V value, BiFunction remappingFunction)

  • Fonctionnalité: combine une nouvelle valeur avec la valeur existante à l'aide d'une fonction.
  • Exemple: (nécessite une implémentation BiFunction)
<code class="language-java">HashMap<KeyType, ValueType> mapName = new HashMap<>();</code>

Exemple complet: Analyse de la fréquence des mots

Cet exemple présente HashMap pour compter les fréquences de mots:

<code class="language-java">HashMap<String, Integer> wordCounts = new HashMap<>();</code>

Conclusion

HashMap est une structure de données Java fondamentale, offrant une gestion efficace des paires de valeurs clés. La maîtrise de ses méthodes vous permet de relever divers défis de programmation, des simples recherches de données aux tâches de manipulation de données sophistiquées. Incorporez HashMap dans vos projets pour exploiter sa puissance et son efficacité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn