CodeGym /Blog Java /Random-FR /LinkedHashMap en Java
John Squirrels
Niveau 41
San Francisco

LinkedHashMap en Java

Publié dans le groupe Random-FR

Qu’est-ce que LinkedHashMap en Java ?

La classe LinkedHashMap du framework Collections est l' implémentation Hashtable et LinkedList de l' interface Map . Il stocke ses entrées dans une table de hachage et utilise une liste à double lien en interne pour maintenir l'ordre d'insertion. Cette LinkedList définit l'ordre d'insertion qui est l'ordre dans lequel les clés ont été insérées dans le Map . Le HashMap offre l'avantage d' une insertion , d'une recherche et d'une suppression rapides, mais dans LinkedHashMap, l'implémentation de LinkedList maintient également l'ordre d'insertion. LinkedHashMap en Java-1

Caractéristiques de LinkedHashMap

  1. Il contient des valeurs basées sur la clé.
  2. Il contient des éléments uniques.
  3. Il peut avoir une clé nulle et plusieurs valeurs nulles.
  4. Il n'est pas synchronisé.
  5. Il maintient l'ordre d'insertion, ce qui rend l'itération plus coûteuse.

Facteurs de performance

Les performances du LinkedHashMap dépendent principalement de deux facteurs décrits ci-dessous.

Capacité

La capacité signifie le nombre d'entrées qu'il peut stocker. La capacité par défaut est de 16 si aucun paramètre n'est fourni. Facteur de charge Le facteur de charge signifie que chaque fois que le HashMap est rempli selon un pourcentage spécifique fourni en paramètre, un nouveau HashMap est créé, dont la taille est double, et toutes les entrées sont déplacées vers ce nouveau. Le facteur de charge par défaut d'un HashMap est de 0,75 . Il est également connu sous le nom de taux de remplissage .

Déclaration de LinkedHashMap

Pour créer un LinkedHashMap , nous devons d’abord importer le package, qui est java.util.LinkedHashMap .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Ici, Key est le type de clés dans la carte. La valeur est le type de valeurs mappées dans la carte. 12 est la capacité, ce qui signifie qu'il stockera 12 entrées sur la carte. 0,5f est le facteur de charge, ce qui signifie que lorsque 50 % sont remplis, une nouvelle carte sera créée et déplacera toutes les valeurs dans cette nouvelle.

Méthodes courantes de LinkedHashMap

Voici une liste de quelques méthodes courantes de LinkedHashMap .
Méthodes Description
clair() Supprime tous les mappages de la carte.
contientValeur(Valeur de l'objet) Renvoie vrai si la carte mappe la clé à la valeur spécifiée.
jeu d'entrées() Renvoie la vue Set des mappages dans la carte.
obtenir (clé d'objet) Renvoie la valeur par rapport à la clé spécifiée ou null si aucune clé n'est spécifiée.
jeu de clés() Renvoie la vue Set des clés dans la carte.
valeurs() Renvoie la vue Collection des valeurs dans la carte.
getOrDefault (clé objet, V valeur par défaut) Renvoie la valeur à laquelle la clé spécifiée est associée ou defaultValue si aucune clé n'est associée.

Exemple de LinkedHasMap

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of odd numbers
        LinkedHashMap<String, Integer> oddNumbers = new LinkedHashMap<>();
        // Using the put() method
        oddNumbers.put("One", 1);
        oddNumbers.put("Three", 3);
        System.out.println("LinkedHashMap1: " + oddNumbers);

        // Creating another LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("Two", 2);
        // Using putAll() method
        numbers.putAll(oddNumbers);
        System.out.println("LinkedHashMap2: " + numbers);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet() method
        System.out.println("Keys: " + numbers.keySet());

        // Using values() method
        System.out.println("Values: " + numbers.values());

        // Using get() method
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault() method
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);

        // Using remove() method
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());
    }
}

Sortir

LinkedHashMap1 : {One=1, Three=3} LinkedHashMap2 : {Two=2, One=1, Three=3} Mappages clé/valeur : [Deux=2, One=1, Three=3] Clés : [Deux, Un , Trois] Valeurs : [2, 1, 3] Nombre renvoyé : 3 Nombre renvoyé : 5 Valeur supprimée : 2 Mappages clé/valeur : [Un=1, Trois=3]

LinkedHashMap et HashMap

Voyons quelques différences entre eux, alors que les deux implémentent l' interface Map .
  1. LinkedHashMap conserve l'ordre d'insertion car il implémente la liste doublement liée en interne.
  2. LinkedHashMap a besoin de plus de stockage car il implémente LinkedList .
  3. Concernant les performances, le LinkedHashMap est plus lent que le HashMap .

Conclusion

Nous espérons que vous comprenez la classe LinkedHashMap en Java, ses différentes méthodes et leur implémentation. N'hésitez pas à vous entraîner et à revenir chaque fois que vous avez besoin d'aide supplémentaire. Bon apprentissage!
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION