linkedhashmap java linkedhashmap example implementation
Ce didacticiel explique tout sur LinkedHashMap en Java, y compris les exemples et méthodes LinkedHashMap, l'implémentation en Java, LinkedHashMap vs HashMap:
LinkedHashMap en Java est une implémentation qui combine l'implémentation HashTable et LinkedList. Il implémente l'interface Map. Les paires clé-valeur de LinkedHashMap ont un ordre d'itération prévisible.
En plus de l'interface Map, LinkedHashMap étend également la classe HashMap.
=> Visitez ici pour voir la série de formations Java pour tous.
didacticiel de serveur de fondation d'équipe pour les débutants
Ce que vous apprendrez:
LinkedHashMap en Java
Certaines des principales caractéristiques de LinkedHashMap sont:
- Il contient des valeurs basées sur des clés.
- Conserve l'ordre d'insertion des paires clé-valeur.
- Il n'autorise pas les doublons, il a des éléments uniques.
- Il peut avoir une seule clé nulle. Mais il autorise plusieurs valeurs nulles.
- Java LinkedHashMap n'est pas synchronisé.
Déclaration de LinkedHashMap
La classe LinkedHashMap en Java fait partie du package java.util.
La déclaration générale de cette classe en Java est la suivante:
public class LinkedHashMap extends HashMap implements Map
Ici K => type de clés dans la carte.
V => type de valeurs mappées aux clés.
La hiérarchie des classes de LinkedHashMap est illustrée ci-dessous:
Comme le montre le diagramme ci-dessus, LinkedHashMap hérite de la classe HashMap et AbstractMap et implémente l'interface Map.
où puis-je trouver la clé de sécurité réseau
Exemple LinkedHashMap
Ci-dessous, un exemple simple.
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Production:
Le contenu de LinkedHashMap:
1 UN
2 DEUX
3 TROIS
4 QUATRE
5 CINQ
Constructeurs et méthodes
Discutons des constructeurs et des méthodes fournis par la classe LinkedHashMap. Tout d'abord, nous discuterons des constructeurs suivis de méthodes.
Constructeurs
Prototype de constructeur | Description | |
---|---|---|
keySet | Définir keySet () | Renvoie le jeu de clés dans la carte. |
LinkedHashMap () | Constructeur par défaut pour LinkedHashMap. | |
LinkedHashMap (capacité int) | Crée un objet LinkedHashMap avec une capacité donnée. | |
LinkedHashMap (capacité int, float loadFactor) | Crée un objet LinkedHashMap avec une capacité et un loadFactor donnés. | |
LinkedHashMap (capacité int, float loadFactor, boolean accessOrder) | Crée un objet LinkedHashMap avec une capacité et un loadFactor donnés. En outre, le mode de commande (accessOrder) est spécifié. | |
LinkedHashMap (carte m) | Crée un objet LinkedHashMap et l'initialise avec les valeurs de la carte m passées en argument. |
Méthodes
Méthode | Prototype de méthode | Description |
---|---|---|
obtenir | V get (clé d'objet) | Renvoie la valeur de la clé donnée. |
dégager | vide clair () | Efface toutes les paires clé-valeur de la carte. |
contientValeur | boolean containsValue (valeur de l'objet) | Vérifie si la carte contient une ou plusieurs clés mappées à la valeur donnée. Renvoie vrai si oui. |
entrySet | Ensemble | Renvoie un ensemble d'entrées dans la carte. |
pour chaque | void forEach (action BiConsumer) | Exécute l'action donnée pour toutes les entrées de la carte. |
getOrDefault | V getOrDefault (clé d'objet, V defaultValue) | Renvoie la valeur mappée à la clé. Si aucune valeur n'est mappée, la valeur par défaut est renvoyée. |
removeEldestEntry | protected boolean removeEldestEntry (aîné de Map.Entry) | Supprime l'entrée la plus ancienne de la carte et renvoie true lors de la suppression. |
remplace tout | void replaceAll (fonction BiFonction) | Appelle la fonction donnée sur chaque entrée et remplace le résultat de la fonction par les valeurs. |
valeurs | Valeurs de collection () | Renvoie la collection de valeurs de la carte. |
Implémentation en Java
Le programme Java ci-dessous montre l'implémentation de LinkedHashMap en démontrant les méthodes décrites ci-dessus.
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
Production:
LinkedHashMap d'origine: {un = rouge, deux = vert, trois = bleu}
LinkedHashMap 'colors_map' vide?: False
Taille de la carte: 3
Valeur de la clé = 'un': rouge
colors_map contient key = 'two': true
colors_map contient la valeur «ree»: false
supprimer l'élément «un»: rouge
Colours_map mis à jour: {two = Green, three = Blue}
Dans ce programme, nous déclarons une carte de couleurs et l'initialisons. Ensuite, nous utilisons les différentes méthodes décrites ci-dessus pour obtenir les résultats.
LinkedHashMap contre HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
La complexité temporelle des opérations de base | O (1) | O (1) | O (1) |
Implémente des cartes ordonnées. | Implémente des cartes non ordonnées. | ||
Utilise une double liste chaînée de seaux. | Utilise la table de hachage. | ||
Maintient l'ordre lors de l'itération des éléments. | Ne conserve pas l'ordre lors de l'itération. | ||
Nécessite plus de mémoire. | Nécessite moins de mémoire que LinkedHashMap. | ||
Les opérations de base comme l'ajout, la suppression, la recherche, etc. sont plus lentes. | Les opérations de base comme l'ajout et la suppression de la recherche sont plus rapides. |
HashMap Vs TreeMap Vs LinkedHashMap
Comparons maintenant les trois implémentations de carte, à savoir. HashMap, TreeMap et LinkedHashMap.
Le tableau suivant montre la comparaison / différence.
Paramètre de comparaison | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
Interface | Carte | Carte | Carte, SortedMap, NavigableMap |
Structure de données | Liste des seaux | Double liste chaînée de buckets | Arbre rouge-noir |
Ordre d'itération | Aucune commande maintenue. | Trié selon l'ordre d'insertion | Trié selon l'ordre naturel des éléments |
Clés nulles | Sont autorisés | Sont autorisés | Interdit |
Synchronisation | Non synchronisé | Non synchronisé | Non synchronisé |
Exigence de clés | Besoin d'écraser les méthodes equals () et hashCode () | Besoin d'écraser les méthodes equals () et hashCode () | L'ordre naturel est maintenu ou un comparateur doit être fourni |
Questions fréquemment posées
Q # 1) Qu'est-ce que LinkedHashMap en Java?
Répondre: LinkedHashMap en Java est implémenté comme une combinaison de HashTable et LinkedList. Il implémente l'interface de la carte. Il a un ordre d'itération prévisible. Il utilise en interne une liste à double lien pour les entrées.
Q # 2)Comment fonctionne LinkedHashMap en Java?
Répondre: Il est similaire à HashMap mais diffère de HashMap dans l'ordre d'insertion que le LinkedHashMap maintient. Les éléments de LinkedHashMap sont stockés de la même manière qu'ils sont entrés dans la structure de données.
Q # 3)Comment puis-je parcourir une LinkedHashMap?
Répondre: Nous pouvons parcourir un LinkedHashMap en utilisant un itérateur.
Voici les étapes que nous pouvons suivre pour parcourir le LinkedHashMap à l'aide de l'itérateur:
- Créez un nouvel objet LinkedHashMap.
- Utilisez la méthode API Put pour insérer des paires clé-valeur dans la carte.
- Appelez la méthode API entrySet () pour obtenir un ensemble de paires clé-valeur dans la carte.
- Appelez l'itérateur sur cet ensemble pour récupérer chaque paire clé-valeur à l'aide des méthodes API getKey () et getValue ().
Q # 4)À quoi sert LinkedHashMap en Java?
Répondre: L'utilisation principale de LinkedHashMap en Java est de l'utiliser pour préserver l'ordre d'insertion. Il peut également être utilisé pour conserver l'ordre d'accès à l'aide duquel les clés sont accessibles. Comme il est plus rapide que HashMap, LinkedHashMap peut être utilisé à la place de HashMap où les performances sont essentielles.
Q # 5)HashMap est-il plus rapide que LinkedHashMap?
Répondre: Les deux ont des performances similaires. HashMap a besoin de moins de mémoire par rapport à LinkedHashMap car HashMap ne maintient pas l'ordre d'accès. Ainsi, HashMap est comparativement plus rapide.
Conclusion
Dans ce tutoriel, nous avons discuté de LinkedHashMap en Java. Nous avons vu les détails concernant la déclaration de classe, la hiérarchie de classe, les constructeurs et les méthodes.
Nous avons également appris les principales différences entre LinkedHashMap et HashMap. Nous avons également discuté de la différence à trois voies entre LinkedHashMap, HashMap et TreeMap.
Dans notre prochain didacticiel, nous explorerons plus de sujets sur Java Collection Framework.
ajout d'un élément à un tableau java
=> Regardez la série de formation Java simple ici.
lecture recommandée
- Tutoriel de réflexion Java avec des exemples
- Tutoriels Eclipse détaillés pour les débutants
- Qu'est-ce qu'un HashTable Java - Implémentation et exemple de HashTable
- Tutoriel JAVA pour les débutants: plus de 100 tutoriels vidéo Java pratiques
- Modificateurs d'accès en Java - Tutoriel avec des exemples
- Tutoriel Java SWING: Conteneur, composants et gestion des événements
- Tutoriel sur la méthode Java String contains () avec des exemples
- Tutoriel Java String avec String Buffer et String Builder