Hashmap

jj1k Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonsoir

je veux remplacer le while par for comment je le fait ?

package list;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


public class Hash {
   public static void main(String[] args) {

      //La fameuse syntaxe en diamant de Java 7
      Map<Integer, String> hm = new HashMap<>();
      hm.put(10, "1");
      hm.put(20, "2");
      hm.put(30, "3");
      hm.put(40, "4");
      hm.put(50, "5");
      //Ceci va écraser la valeur 5
      hm.put(50, "6");
      
      
      System.out.println("Parcours de l'objet HashMap : ");
      Set<Entry<Integer, String>> setHm = hm.entrySet();
      Iterator<Entry<Integer, String>> it = setHm.iterator();
      while(it.hasNext()){
         Entry<Integer, String> e = it.next();
         System.out.println(e.getKey() + " : " + e.getValue());
      }
      
     
   }
}


Merci

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Drôle d'idée .. mais bon.
regarde ici : https://blog.developpez.com/todaystip/p9440/dev/title_181
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Pourquoi drôle d'idée ?
Au contraire. Virer du code obsolète depuis Java 5 c'est toujours bon à prendre.
Il aurait même mieux valu ne jamais apprendre les Iterator... ou bien plus tard.

System.out.println("Parcours de l'objet HashMap : ");
for (Entry<Integer, String> e : hm.entrySet()){
    System.out.println(e.getKey() + " : " + e.getValue());
}

Et hop, on divise la taille par 2... L'étape d'après c'est de le faire en 1 ligne.

hm.entrySet().forEach(e -> System.out.println(e.getKey() + " : " + e.getValue()));
0
jj1k Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci
0