Bonjour à toutes et à tous,
Je ne sais pas si j'ai été totalement clair dans mon titre alors reprenons la situation.
J'avais une arraylist d'entiers que j'ai triée par ordre décroissant. Aucun problème, vérifications effectuées, tout est bien trié ! Une fois ce tri fait, je veux mettre ces valeurs dans une hashmap avec un String comme clé pour chaque valeur. L'insertion se passe elle aussi sans problème, j'ai bien une hashmap triée selon les valeurs entières de l'arraylist.
Sauf que une fois que je veux parcourir cette hashmap, je découvre des couples <cle, valeur> absolument pas triés !!
?! Qué passà ?!
Voici les éléments de code qui peuvent vous intéresser :
Voici le tri de l'arraylist et l'insertion dans la hashmap
Le parcours de l'hashmap qui me fait découvrir une table totalement désordonnée (deux parcours différents tentés mais rien n'y change !) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Collections.sort(liste_pages,new Comparator(){ public int compare(Object p1, Object p2){ int nb_images1=((Page)p1).getNbImages(); int nb_images2=((Page)p2).getNbImages(); if(nb_images1==nb_images2){ return 0; }else{ if(nb_images1>nb_images2){ return -1; }else{ return 1; } } } }); HashMap<String,Integer> table=new HashMap<String, Integer>(); for(Page p : liste_pages){ table.put(p.getNomPage(), p.getNbImages()); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 HashMap<String,Integer> pages_triees=vueMenu.aspirateur.getPagesMaxImages(); //StringBuilder liste=new StringBuilder("Pages triées par ordre décroissant du nombre d'images"); Set lesEntrees = pages_triees.keySet(); Iterator it = lesEntrees.iterator() ; while(it.hasNext()) { String cle=(String)it.next(); Integer val=pages_triees.get(cle); System.out.println(cle+" --- "+val); } /*for(Entry<String,Integer> entry : pages_triees.entrySet()) { String cle = entry.getKey(); Integer valeur = entry.getValue(); //System.out.println(cle+" --- "+valeur); }*/
Partager