Вы находитесь на странице: 1из 7

COLLECTIONS JAVA

Master STRI20, H. Mouncif, @ 1


Stocke des elements generiques
sous formes de cle-valeur

Master STRI20, H. Mouncif, @ 2


Parcourir une collection
Comme vous le savez déjà, il y a deux façons de parcourir une collection, en fonction de son type :

soit avec un itérateur ou un simple boucle pour les collections de type Collection ;

soit avec une Collection pour les collections de type Map.

Je vous propose de refaire un point rapide sur la façon de procéder. Promis, ça ne sera pas long
et ça vous sera bien utile pour la suite. :)

Parcourir une implémentation de type Collection

Ce type d'interface comporte un objet bien pratique : un Iterator. Voici les méthodes présentes
dans cette interface :

public interface Iterator<E> { E --> designe les objets stockes

boolean hasNext(); hasNext() (boucle while):verifie est-ce qu'il y a unn objet qu'on n'a pas encore parcourue
E next(); next() : passe la reference de l'objet suivant
void remove();
}

Master STRI20, H. Mouncif, @ 3


Cet objet vous permet donc de :

parcourir une collection, via la méthode hasNext(). Cette méthode retourne true s'il reste des éléments à
parcourir ;

récupérer un élément, grâce à la méthode next(). Celle-ci retourne l'élément courant dans l'itérateur. Si vous
invoquez cette méthode plusieurs fois dans une boucle de parcours, cela vous fait avancer dans la lecture de la
collection, un peu comme si vous incrémentiez plusieurs fois le compteur d'une boucle for ;

supprimer un élément, en utilisant la méthode remove(). Cette méthode n'est utilisable qu'après avoir utilisé la
méthode next() et n'est utilisable qu'une seule fois par appel à la méthode next().

Master STRI20, H. Mouncif, @ 4


import java.util.ArrayList;
import java.util.Iterator; //tant qu'il y a des éléments à parcourir
while(it.hasNext()){ hasNext()---> tjrs comme condition
Next()----> a l'interieur
public class Main { nbTourDeBoucle++;
//nous récupérons l’élément courant
public static void main(String[] args) { String str = (String)it.next();
//nous créons une collection basique //si nous sommes sur l'élément 4, nous le retirons de la collection
ArrayList<String> list = new ArrayList<String>(); if(str.equals("4"))
list.add("1"); it.remove();
list.add("2"); }
list.add("3");
list.add("4"); //nous reparcourons un nouvel itérateur
list.add("5"); //pour nous assurer que tout a fonctionné
list.add("6"); it = list.iterator();
list.add("7");
while(it.hasNext()){
//Un petit compteur pour récupérer les tours de boucle
int nbTourDeBoucle = 0; nbTourDeBoucle2++;
int nbTourDeBoucle2 = 0; System.out.println(it.next());
System.out.println(it.next());
//Nous récupérons notre itérateur System.out.println(it.next());
Iterator it = list.iterator(); //iterator deja predefinis }

System.out.println("Nombre de tours de boucle N°1 : " + nbTourDeBoucle);


System.out.println("Nombre de tours de boucle N°2 : " + nbTourDeBoucle2);

}
}
Master STRI20, H. Mouncif, @ 5
Parcourir une collection de type Map
En fait, les objets implémentant cette interface sont un peu particuliers de par leur nature à gérer des couples d’éléments. Du coup, les concepteurs
du langage vous proposent trois façons de parcourir une telle collection, en implémentant des méthodes de l’interface Collection :

la méthode keySet() qui retourne une collection de type Set<K> lorsque "K" est le type de la clé de notre Map<K, V>.

la méthode entrySet() qui retourne elle aussi une implémentation de l'interface Set, mais de type différent. La collection retournée sera définie ainsi
Set<Entry<K, V>>. Ce sera donc une collection d'objets qui contiendra tous les couples clé - valeur de notre Map. Cet objet est en fait une classe
interne à l'interface Map et contient quelques méthode utiles pour récupérer des informations.

et enfin la méthode values() qui retourne ce type d'objet Collection<String>, c'est-à-dire la liste de nos valeurs.

Voici un code d'exemple afin de vous familiariser avec ces trois façons de faire :

Master STRI20, H. Mouncif, @ 6


import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; Set<Entry<Integer, String>> setEntry = map.entrySet();
//Utilisation d'un iterateur générique
Iterator<Map.Entry<Integer, String>> itEntry = setEntry.iterator();
public class Main2 { System.out.println("Parcours d'une Map avec setEntry : ");
//ensuite vous savez faire
/** while(itEntry.hasNext()){
* @param args Map.Entry<Integer, String> entry = itEntry.next();
*/ System.out.println("Valeur pour la clé " + entry.getKey() + " = " +
public static void main(String[] args) { entry.getValue());
Map<Integer, String> map = new HashMap<Integer, String>(); }
map.put(1, "toto"); System.out.println("-----------------------------------");
map.put(2, "titi");
map.put(3, "tutu");
map.put(4, "tete"); Collection<String> col = map.values();
map.put(5, "tata"); Iterator<String> itString = col.iterator();
System.out.println("Parcours de la liste des valeurs d'une Map avec values : ");
//Nous récupérons un Set contenant des entiers //ensuite vous savez faire
Set<Integer> setInt = map.keySet(); while(itString.hasNext()){
//Utilisation d'un itérateur générique String value = itString.next();
Iterator<Integer> it = setInt.iterator(); System.out.println("Valeur : " + value);
System.out.println("Parcours d'une Map avec keySet : "); }
//ensuite vous savez faire System.out.println("-----------------------------------");
while(it.hasNext()){
int key = it.next(); }
System.out.println("Valeur pour la clé " + key + " = " + map.get(key)); }
}
System.out.println("-----------------------------------");

Master STRI20, H. Mouncif, @ 7

Вам также может понравиться

  • CHAPITRE 7 Transformée de Fourrier Discrete (Slide) PDF
    CHAPITRE 7 Transformée de Fourrier Discrete (Slide) PDF
    Документ79 страниц
    CHAPITRE 7 Transformée de Fourrier Discrete (Slide) PDF
    shylamo
    Оценок пока нет
  • Convolution
    Convolution
    Документ14 страниц
    Convolution
    Cnqp Cnqp
    Оценок пока нет
  • GELE2511 Chapitre5 PDF
    GELE2511 Chapitre5 PDF
    Документ58 страниц
    GELE2511 Chapitre5 PDF
    shylamo
    Оценок пока нет
  • Mathematiques Appliquees Signaux Et Syst PDF
    Mathematiques Appliquees Signaux Et Syst PDF
    Документ123 страницы
    Mathematiques Appliquees Signaux Et Syst PDF
    shylamo
    Оценок пока нет
  • GELE2511 Chapitre6 PDF
    GELE2511 Chapitre6 PDF
    Документ38 страниц
    GELE2511 Chapitre6 PDF
    shylamo
    Оценок пока нет
  • Exam 2 H11
    Exam 2 H11
    Документ7 страниц
    Exam 2 H11
    shylamo
    Оценок пока нет
  • Ch7 Transformée de Fourier Discrète
    Ch7 Transformée de Fourier Discrète
    Документ31 страница
    Ch7 Transformée de Fourier Discrète
    shylamo
    Оценок пока нет
  • GELE2511 Ch4
    GELE2511 Ch4
    Документ14 страниц
    GELE2511 Ch4
    Ich Seelen Der Geister
    Оценок пока нет
  • GELE2511 Ch3
    GELE2511 Ch3
    Документ12 страниц
    GELE2511 Ch3
    kim
    Оценок пока нет
  • Ch8 Transformée en Z PDF
    Ch8 Transformée en Z PDF
    Документ14 страниц
    Ch8 Transformée en Z PDF
    shylamo
    Оценок пока нет
  • Ch1 PDF
    Ch1 PDF
    Документ33 страницы
    Ch1 PDF
    Nabil EL Kassoumi
    100% (1)
  • Collectionjava Partager
    Collectionjava Partager
    Документ7 страниц
    Collectionjava Partager
    shylamo
    Оценок пока нет
  • Geni Telcom Chap6
    Geni Telcom Chap6
    Документ18 страниц
    Geni Telcom Chap6
    shylamo
    Оценок пока нет
  • Geni Telcom Chap4
    Geni Telcom Chap4
    Документ16 страниц
    Geni Telcom Chap4
    shylamo
    Оценок пока нет
  • Td6rez0 Soluce
    Td6rez0 Soluce
    Документ3 страницы
    Td6rez0 Soluce
    Adama Sissokho
    Оценок пока нет
  • GELE2511 Ch2 PDF
    GELE2511 Ch2 PDF
    Документ13 страниц
    GELE2511 Ch2 PDF
    Algerian Aissaoui
    Оценок пока нет
  • Ch5 Signaux Et Sysèmes Discrets PDF
    Ch5 Signaux Et Sysèmes Discrets PDF
    Документ15 страниц
    Ch5 Signaux Et Sysèmes Discrets PDF
    shylamo
    Оценок пока нет
  • N FM
    N FM
    Документ53 страницы
    N FM
    Saida Essoufi
    100% (1)
  • TD2 2020 PDF
    TD2 2020 PDF
    Документ1 страница
    TD2 2020 PDF
    shylamo
    Оценок пока нет
  • N FM
    N FM
    Документ53 страницы
    N FM
    Saida Essoufi
    100% (1)
  • TD2 2020 PDF
    TD2 2020 PDF
    Документ1 страница
    TD2 2020 PDF
    shylamo
    Оценок пока нет
  • Les Collections Cours
    Les Collections Cours
    Документ22 страницы
    Les Collections Cours
    shylamo
    Оценок пока нет
  • TD2 2020 PDF
    TD2 2020 PDF
    Документ1 страница
    TD2 2020 PDF
    shylamo
    Оценок пока нет
  • Architecture Des Reseaux
    Architecture Des Reseaux
    Документ258 страниц
    Architecture Des Reseaux
    Badreddine Ammar
    100% (4)
  • Architecture Des Reseaux
    Architecture Des Reseaux
    Документ258 страниц
    Architecture Des Reseaux
    Badreddine Ammar
    100% (4)
  • N FM
    N FM
    Документ53 страницы
    N FM
    Saida Essoufi
    100% (1)
  • Command Linux
    Command Linux
    Документ9 страниц
    Command Linux
    shylamo
    Оценок пока нет
  • Chiffrement de Hill
    Chiffrement de Hill
    Документ2 страницы
    Chiffrement de Hill
    shylamo
    Оценок пока нет
  • Com Num2 Chapter3
    Com Num2 Chapter3
    Документ38 страниц
    Com Num2 Chapter3
    shylamo
    Оценок пока нет
  • Structurescsd
    Structurescsd
    Документ9 страниц
    Structurescsd
    aymen77
    Оценок пока нет
  • SED - Langages Automates
    SED - Langages Automates
    Документ16 страниц
    SED - Langages Automates
    youcef mokrane
    Оценок пока нет
  • QCM Poo
    QCM Poo
    Документ2 страницы
    QCM Poo
    Hajar Filali
    Оценок пока нет
  • POO Collections
    POO Collections
    Документ32 страницы
    POO Collections
    Raja Ben Charrada
    Оценок пока нет
  • Devoir Libre Java
    Devoir Libre Java
    Документ1 страница
    Devoir Libre Java
    Ahmed Ml
    Оценок пока нет
  • Nfa032 06
    Nfa032 06
    Документ32 страницы
    Nfa032 06
    Rihab BEN LAMINE
    Оценок пока нет
  • Mon Exam
    Mon Exam
    Документ30 страниц
    Mon Exam
    Abd Errezak Chahoub
    Оценок пока нет
  • Automates A Pile
    Automates A Pile
    Документ115 страниц
    Automates A Pile
    Sahbi Sk
    Оценок пока нет
  • Cours Python Oop
    Cours Python Oop
    Документ174 страницы
    Cours Python Oop
    parfait ELABA
    Оценок пока нет
  • TP 2
    TP 2
    Документ3 страницы
    TP 2
    majdoub manel
    Оценок пока нет
  • TP2 C++
    TP2 C++
    Документ7 страниц
    TP2 C++
    ferira
    Оценок пока нет
  • Cours UML Diagramme Classe
    Cours UML Diagramme Classe
    Документ180 страниц
    Cours UML Diagramme Classe
    elhage
    Оценок пока нет
  • 13-Les Fonctions Lambda
    13-Les Fonctions Lambda
    Документ30 страниц
    13-Les Fonctions Lambda
    fati zaha
    Оценок пока нет
  • Courscomplet PDF
    Courscomplet PDF
    Документ420 страниц
    Courscomplet PDF
    kyokoshan
    Оценок пока нет
  • Série 3 - TL - 2020
    Série 3 - TL - 2020
    Документ2 страницы
    Série 3 - TL - 2020
    Mardochee ROBNDOH
    100% (1)
  • Bibl Math
    Bibl Math
    Документ11 страниц
    Bibl Math
    Anas HEDDOUN
    Оценок пока нет
  • Chapitre 6
    Chapitre 6
    Документ46 страниц
    Chapitre 6
    Hind Attache
    Оценок пока нет
  • Determinisation
    Determinisation
    Документ4 страницы
    Determinisation
    sow
    0% (1)
  • 5 - Chapitre4 - Interfaces Et Classes Abstraites
    5 - Chapitre4 - Interfaces Et Classes Abstraites
    Документ33 страницы
    5 - Chapitre4 - Interfaces Et Classes Abstraites
    Nora Habrich
    Оценок пока нет
  • Cours Java
    Cours Java
    Документ49 страниц
    Cours Java
    Yassmina
    Оценок пока нет
  • Langage SQL - Cours
    Langage SQL - Cours
    Документ33 страницы
    Langage SQL - Cours
    GMSI Promo 2024
    Оценок пока нет
  • Controle Heritage Decembre 2014 Correction PDF
    Controle Heritage Decembre 2014 Correction PDF
    Документ7 страниц
    Controle Heritage Decembre 2014 Correction PDF
    Nabil Bikri
    Оценок пока нет
  • POL Test Technique C++ QT Enoncé
    POL Test Technique C++ QT Enoncé
    Документ16 страниц
    POL Test Technique C++ QT Enoncé
    Omar
    Оценок пока нет
  • Chapitre 1 Rappels Sur La Modélisation UML
    Chapitre 1 Rappels Sur La Modélisation UML
    Документ90 страниц
    Chapitre 1 Rappels Sur La Modélisation UML
    Zahia Loualia
    Оценок пока нет
  • TP2 - Java - 1st Class
    TP2 - Java - 1st Class
    Документ15 страниц
    TP2 - Java - 1st Class
    aladin007
    Оценок пока нет
  • Chap5-PHP-POO P1 2020
    Chap5-PHP-POO P1 2020
    Документ71 страница
    Chap5-PHP-POO P1 2020
    Binetta binette
    Оценок пока нет
  • Examen S1 2017 2018 Corrig
    Examen S1 2017 2018 Corrig
    Документ2 страницы
    Examen S1 2017 2018 Corrig
    ESI
    100% (1)
  • POO2019 Cour2 PDF
    POO2019 Cour2 PDF
    Документ31 страница
    POO2019 Cour2 PDF
    Hamada Khorsi
    Оценок пока нет
  • Toutjava DUT
    Toutjava DUT
    Документ124 страницы
    Toutjava DUT
    Jameson Moise
    Оценок пока нет
  • Cours Umlintro
    Cours Umlintro
    Документ34 страницы
    Cours Umlintro
    KarimTouati
    Оценок пока нет
  • Normal 58231b4b169ae
    Normal 58231b4b169ae
    Документ64 страницы
    Normal 58231b4b169ae
    Ciss
    Оценок пока нет