[Java] Obtenir des éléments List / Map avec Iterator

table des matières

en premier

Lorsque vous touchez Carte / Liste en Java,

Je pense qu'il y a pas mal de moments comme ça. Cet ** Iterator ** est pratique dans un tel cas.

Veuillez vous y référer car il est résumé avec le code réel.

Qu'est-ce que Iterator

Définition

Iterator (anglais: iterator) est une abstraction du traitement itératif pour chaque élément d'un tableau ou d'une structure de données collective similaire (collection ou conteneur) dans un langage de programmation. Dans le langage de programmation actuel, il apparaît comme un objet ou une grammaire. Dans JIS, il est traduit par un répéteur (hanpukushi). wikipedia

Comme mentionné ci-dessus, l '** interface ** pour effectuer un ** traitement itératif ** sur des ** tableaux et données similaires ** est appelée Iterator.

Méthode itératrice

Les deux méthodes suivantes sont déclarées dans la classe Iterator.

Les deux ci-dessus sont importants, et next () et hasNext () sont principalement utilisés pour le traitement itératif. Lorsque vous utilisez Iterator dans une autre classe, ** remplacez ** la méthode. "Opération arbitraire" de remove () signifie "certains objets appelés Iterator ne prennent pas en charge".

notation

Lorsqu'il est utilisé, instanciez avec le nom de l'objet ```Iterator <type d'objet de référence>

Vérifiez l'utilisation réelle dans chaque classe ci-dessous.

Itérateur de type de liste

Puisque la classe List implémente l '** interface Iteratable **, vous pouvez obtenir un objet de type Iterator simplement en appelant une méthode. Liste des détails de la classe (Oracle HP)

IteratorDemo.java


public void IteratorDemo(){
//Création de liste
	List<String> list = new ArrayList<String>(); 
	list.add("Chien");                           
	list.add("singe");                           
	list.add("faisan");                                                
//Obtenir l'itérateur, appeler la méthode
	Iterator<String> itList = list.iterator();
//afficher
	while (itList.hasNext()){                    
		String s = itList.next();
		System.out.println(s);
	}
}
Résultat d'exécution:
Chien
singe
faisan

Itérateur basé sur la carte

Puisque ** l'interface Iterator n'est pas implémentée dans la classe Map **, récupérez Iterator après en avoir fait un objet de type classe qui implémente une fois l'interface Iterator.

IteratorDemo.java


//Création de carte//                                                                             
	Map<Character, String> map = new HashMap<Character, String>();                      
	map.put('A', "Arufa");                                                               
	map.put('B', "Bravo");                                                               
	map.put('C', "Charlie");                                                              
                                                                                        
//Obtenir l'itérateur, appeler la méthode//                                                                                        
	// keySet()Obtenez la liste de clés en tant qu'objet de type Set avec
	Iterator<Character> itMapKey = map.keySet().iterator();                             
                                                                                        
	// values()Obtenir une liste de valeurs en tant qu'objet de type Collection avec
	Iterator<String> itMapValue = map.values().iterator();                              
                                                                                        
	// entrySet()Avec ensemble<Map.Entry<K, V>Obtenir la combinaison clé / valeur comme objet type
	Iterator<Map.Entry<Character, String>> itEntry = map.entrySet().iterator();         
                                                                                        
                                                                                        
//afficher//                                                                                
	while (itMapKey.hasNext()){                                                         
		char key = itMapKey.next();                                                     
		System.out.println(key);                                                        
	}                                                                                   
                                                                                
	while (itMapValue.hasNext()){                                                       
		String value = itMapValue.next();                                               
		System.out.println(value);                                                      
	}                                                                                   
                                                                               
	while(itEntry.hasNext()){                                                           
		Map.Entry<Character, String> entry = itEntry.next();                            
		System.out.println(entry);                                                      
	}                                                                                                                                    
Résultat d'exécution:
A
B
C
Arufa
Bravo
Charlie
A=Arufa
B=Bravo
C=Charlie

De l'expression générique à l'instruction étendue

Dans l'exemple de code ci-dessus, la sortie a été effectuée à l'aide des génériques ** "<>" **, mais l'instruction for étendue peut également être utilisée. La méthode de sortie pour chaque instruction List / Map for est la suivante.

//Le résultat de l'affichage est le même que le code de la section "Itérateur basé sur la carte".

//Afficher tout le contenu de la liste
for (String value : list){    
	System.out.println(value);
}                             
//Afficher toutes les touches de la carte
for (char key : map.keySet()){ 
	System.out.println(key);   
}
//Afficher toutes les valeurs de la carte
for (String value : map.values()){ 
	System.out.println(value);     
}
//Combinaison clé / valeur de mappage(entrée)Afficher tout
for (Map.Entry<Character, String> entry : map.entrySet()){
	System.out.println(entry);                            
}                                                                                                                   

Résumé

La classe --List peut utiliser Iterator tel quel La classe --Map est utilisée après la conversion de la valeur en un objet du type que Iterator est implémenté.

Les éléments que vous voulez Nom de la méthode Valeur de retour
Liste des clés map.keySet() Définir le type
Liste de valeurs map.values() Type de collection
Liste des combinaisons clé / valeur map.entrySet() Collection<Entry<K, V>>Moule

À la fin

Merci d'avoir lu jusqu'ici.

Il y a certaines parties qui n'ont pas encore été abordées, alors j'aimerais les résumer un jour.

J'ai vu des articles comme "Implémenter Iterator dans ma propre classe", je voudrais donc résumer cela un jour.

Puis.

Recommended Posts

[Java] Obtenir des éléments List / Map avec Iterator
Conversion de liste Java8 avec Stream map
[Java] [ibatis] Comment obtenir des enregistrements de relation 1 à N avec List <Map <>>
Pour les débutants Java: List, Map, Iterator / Array ... Comment convertir?
[Java] Supprimer les éléments de la liste
Obtenir des valeurs de carte nulles en Java
Créer une carte de liste avec LazyMap
[Java] Convertir 1 en N liste en carte
JAVA (Carte)
Obtenez des horodatages avec le SDK Java Azure BlobStorage
[Java] Obtenez la date avec la classe LocalDateTime
Obtenir une liste de fichiers S3 avec ListObjectsV2Request (AWS SDK for Java)
Liste, ensemble, carte
Mémorandum Java (liste)
Clonez la liste Java.
Résumé Il n'y a rien de particulier. Dois-je y prêter attention? .. .. J'ai ressenti cela, alors j'ai écrit un article. Si vous avez des commentaires, veuillez. Obtenez des informations de bloc avec le SDK Java de Python, Python3, Glossy Hyperledger Iroha
Tableau / liste / carte
[Java] Obtenez des images avec l'API Google Custom Search
[Java] Comparaison de cartes
[LeJOS] Obtenez la valeur du capteur EV3 à distance avec Java
S'entendre avec les conteneurs Java dans Cloud Run
[Java] Trier ArrayList avec des éléments de votre propre classe
Traitement des listes à comprendre avec des images - java8 stream / javaslang-
Obtenir une liste d'informations MBean pour les applications Java
Les utilisateurs Java expérimentés se lancent dans le développement d'applications Android
Obtenez la configuration Azure App Service pour Java avec System.getEnv ()
[Java] Obtenez la date 10 jours plus tard avec la classe Calendar
Commencez avec Java sans serveur avec le framework léger Micronaut!
Installez java avec Homebrew
[Java] Obtenir des dates diverses
Changer de siège avec Java
Installez Java avec Ansible
[Java] API / carte de flux
Téléchargement confortable avec JAVA
Changer java avec direnv
A propos de la liste des baies Java
Enum Reverse Map Java
[Java] Initialisation, ajout, acquisition
Bibliothèque de cartes bidirectionnelles Java
Téléchargement Java avec Ansible
Raclons avec Java! !!
Construire Java avec Wercker
Commencez avec Gradle
[Mémo] Liste liée Java
Conversion Endian avec JAVA
[Java] Obtenir le jeu de caractères avec Apathce Tika / Initialiser la chaîne à partir du jeu de caractères [Kotlin]
Un développeur Java de première année chez udemy a essayé de se lancer avec PHP
Je veux faire une liste avec kotlin et java!
PriorityQueue, où j'avais des problèmes avec la méthode Dyxtra en utilisant la liste de contiguïté (java)
Traitement des listes à comprendre avec des images --java8 stream / javaslang --bonus
À propos du comportement lors de la création d'un mappage de fichiers avec Java