CodeGym /Blog Java /Random-FR /Comment itérer une carte en Java
Auteur
Milan Vucic
Programming Tutor at Codementor.io

Comment itérer une carte en Java

Publié dans le groupe Random-FR
Dans cet article, nous allons apprendre différentes manières d'itérer une carte en Java. Certains de ses moyens courants et comment les utiliser à l'aide d'exemples. Avant de commencer, nous supposons que vous comprenez les interfaces et les cartes en Java. Cependant, voici un bref récapitulatif pour vous.

Qu'est-ce qu'une carte en Java ?

Il existe de nombreuses interprétations de cela, mais disons simplement de cette façon.
"Map est une interface en Java, qui est utilisée pour stocker des données sous la forme de paires clé-valeur."
Si vous pensez à quoi servent les cartes? Ou quand sont-ils nécessaires ? Ensuite, il existe de nombreuses situations dans la vie réelle où nous devons stocker des données dans des paires clé-valeur. Par exemple, tous les mots correspondant à une seule lettre dans un dictionnaire peuvent être stockés sous forme de carte en Java.
K Cerf-volant, roi, corée, chevalier,..., etc.
L Lave, Vie, Lumière, Amour, Liban,..., etc.
De plus, vous pouvez consulter les exemples suivants pour mieux comprendre cela.
Clé Valeur
Carte d'identité familiale Membres de la famille
Nom du cours Cartes d'étudiant
Nom de la zone Codes ZIP
Bloc de zone Numéros de maison

Pourquoi avons-nous besoin de parcourir une carte ?

Nous devons traverser ou parcourir une carte pour accéder, modifier ou supprimer des données. Explorons quelques-unes des options que nous avons.

Quels sont les moyens courants d'itérer une carte en Java ?

Bien qu'il existe de nombreuses façons de parcourir une carte. Cependant, nous nous concentrerons sur les moyens les plus efficaces et les plus simples.
  1. La méthode de boucle ForEach
  2. La méthode des itérateurs
Veuillez trouver la mise en œuvre des deux méthodes ci-dessous.

Utilisation de la méthode de la boucle Foreach

Exemple


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

public class ForEachDemo {

	public static void main(String[] args) {

		Map<String, String> businessDays = new HashMap<String, String>();

		// store business days i-e; key/value pairs in the Map
		businessDays.put("1", "Monday");
		businessDays.put("2", "Tuesday");
		businessDays.put("3", "Wednesday");
		businessDays.put("4", "Thursday");
		businessDays.put("5", "Friday");

		// Iterating over the Map.entrySet() using map.forEach
		for (Map.Entry<String, String> entry : businessDays.entrySet()) 
		{
			System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); 
		}
	}
}

Sortir

clé = 1, valeur = lundi clé = 2, valeur = mardi clé = 3, valeur = mercredi clé = 4, valeur = jeudi clé = 5, valeur = vendredi

Explication

Dans cet exemple, nous avons utilisé la boucle foreach pour parcourir la carte. En utilisant la boucle for-each, nous obtenons un entrySet() qui fournit une "vue" automatisée des données de la carte, sous la forme de paires clé-valeur. Chaque entrySet contient une clé et les valeurs correspondantes. Où vous pouvez utiliser toutes les méthodes de Map.Entry<key, value> selon vos besoins. Ici, nous n'avons utilisé que getKey() et getValue() pour afficher les données sur la console. En guise d'exercice, vous pouvez explorer le reste des méthodes pour renforcer votre maîtrise de ce concept.

Utilisation de la méthode des itérateurs

Exemple


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

public class MapIterator {

	public static void main(String[] args) {

		Map<String, String> monthsInAYear = new HashMap<String, String>();

		// store business days i-e; key/value pairs in the Map
		monthsInAYear.put("1", "January");
		monthsInAYear.put("2", "February");
		monthsInAYear.put("3", "March");
		monthsInAYear.put("4", "April");
		monthsInAYear.put("5", "May");
		monthsInAYear.put("6", "June");
		monthsInAYear.put("7", "July");
		monthsInAYear.put("8", "August");
		monthsInAYear.put("9", "September");
		monthsInAYear.put("10", "October");
		monthsInAYear.put("11", "November");
		monthsInAYear.put("12", "December");

		// iterate map / traverse the map using using iterator
		Iterator<Map.Entry<String, String>> iterator = monthsInAYear.entrySet().iterator();

		while (iterator.hasNext()) 
		{
			// check if next entry exists in the map
			Map.Entry<String, String> entry = iterator.next(); 
			System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());

		}
	}
}

Sortir

clé = 11, valeur = novembre clé = 1, valeur = janvier clé = 12, valeur = décembre clé = 2, valeur = février clé = 3, valeur = mars clé = 4, valeur = avril clé = 5, valeur = mai clé = 6, valeur = juin clé = 7, valeur = juillet clé = 8, valeur = août clé = 9, valeur = septembre clé = 10, valeur = octobre

Explication

Dans cet exemple, nous créons un itérateur explicite pour parcourir/itérer sur la carte. Tout d'abord, vous devez importer la classe d'itérateur, puis obtenir l'itérateur pour l'entrySet. Maintenant, parcourez la carte tout en continuant à vérifier la prochaine entité qui existe sur la carte. Voilà! Votre traversée est terminée, juste comme ça.

La boucle Foreach est-elle meilleure que la méthode des itérateurs ?

Peu importe la méthode que vous utilisez pour parcourir une carte tant qu'elle fait le travail pour vous. En termes de performances, la boucle for-each et les itérateurs ont la même complexité temporelle . Donc, aucun n'est meilleur que l'autre, cela dépend de ce que vous devez utiliser et quand.

Quelle est la différence entre les deux méthodes ?

La boucle for-each ne permet pas de mettre à jour/modifier les données dans la carte. Au contraire, vous pouvez facilement modifier les données à l'aide d'itérateurs. La classe iterators vous facilite la tâche en fournissant une implémentation pour modifier/supprimer les données de la carte. Au contraire, si vous essayez de modifier/supprimer des données de carte à l'aide de la boucle for-each, cela lèvera une ConcurrentModificationException . La raison en est que la boucle for-each crée implicitement un itérateur, qui n'est pas exposé à l'utilisateur. Par conséquent, vous n'avez pas l'accès pour modifier ou supprimer des données.

Quelle méthode de parcours utiliser et quand ?

Si vous n'êtes pas sûr d'utiliser for-each ou les itérateurs pour itérer votre carte, vous pouvez suivre les suggestions suivantes.
  • Utilisez l' itérateur si vous devez modifier la carte.
  • Utilisez la boucle for-each si vous avez des boucles imbriquées (pour éviter la complexité).

Conclusion

À la fin de l'article, nous espérons que vous avez appris à itérer une carte en Java. Nous vous encourageons à les pratiquer et à essayer d'autres méthodes de traversée également. N'hésitez pas à revenir en arrière ou à poser des questions chaque fois que vous vous sentez coincé. D'ici là, bon apprentissage !
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION