Bonjour,

SVP,j'ai une hashMap dont j'aimerais ordonner ces éléments de la clef qui a la valeur maximale jusqu'ai la minimale mais j'aboutis pas en plus j'arrive pas à afficher les clefs et les valeurs.

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<
 
import java.util.*;
import java.io.*;
/**
Cette classe reçoit plusieurs listes de souhaits 
et construit la programmation optimale
*/
public class Optimiseur{
 
 
static List<String> listeReelle=new ArrayList<String>();
 
 
/**
Cette Map contient tous les clips avec leurs nombres de vote(nombre d'occurence dans la ligne de saisie)
*/
static Map<String,Integer> mapListePrioritaire=new HashMap<String,Integer>();
 
/**
Cette méthode parcourt les clips saisis par un utilisateur donné et les mets dans une liste  avant de faire appel
à la méthode nombreDeVoteParClip
*/
 
public static List<String> receptionListeClip(String[] tabClipsSaisis){
 
	for(int i=0;i<tabClipsSaisis.length && (tabClipsSaisis[i]) !=null;i++){
	listeReelle.add(tabClipsSaisis[i]);
	System.out.println("liste est:"+ "\t" + tabClipsSaisis[i]);
 
}
return listeReelle;
}
 
	/**
        Cette méthode calcul le nombre d'occurence de clip parmis tous les clips déjà saisis par les autres utilisateurs.
        la variable nombreVote commence à 1 car on ne fait appel à cette méthode que si le clip en question est saisi.
        Dans cette méthode,on alimente la listePrioritaire par le clip et son nombre de vote
        */
public static void nombreDeVoteParClip(String clip){
	int nombreVote=1;
	try{
	while(listeReelle !=null){
	for(int k=0;k<listeReelle.size();k++){
 
	if(listeReelle.get(k).equals(clip)) 
	{
	++(nombreVote);
 
	}
	mapListePrioritaire.put((listeReelle.get(k)),new Integer(nombreVote));
	}
 
 
	}
 
	}catch(NullPointerException npe){
	//npe.printStackTrace();
	}
	}
 
 
 
public static void main(String[] args){
 
 
 
	ArrayList<List> collectionToutesListesClips=new ArrayList<List>();
 
	try{
	BufferedReader	stdin = new BufferedReader(new InputStreamReader(System.in));
	Collection<Integer> values=null;
	int i=0;
	while(  (i++ < 2)){
	System.out.print("veuillez entrer votre numero d'utilisateur>> ");
	String numUtilisateur = stdin.readLine();
	System.out.print("veuillez entrer votre choix de clips> ");
	String choixClips=stdin.readLine();
	String [] clipsDemandesSurLigneCommande = choixClips.split(";");
	for(int h=0;h<listeReelle.size();h++)
	{
	listeReelle.addAll((Collection<String>)Optimiseur.receptionListeClip(clipsDemandesSurLigneCommande));
	Optimiseur.nombreDeVoteParClip(clipsDemandesSurLigneCommande[h]);
 
     }
	 System.out.println("etape1");
 
	 System.out.println("etape2");
 
 
 
	//if(maListePrioritaire.equals(null)) System.out.println("désolé");
 
}
	Set cles = mapListePrioritaire.keySet();
 
	Iterator it = cles.iterator();
	while (it.hasNext()){
	 System.out.println("etape22");
	Object cle =it.next(); 
	 System.out.println("etape23");
	Object valeur =mapListePrioritaire.get(cle); 
 
 
	 System.out.println("etape3");
 
	System.out.println("le clip est :" + (String)cle + "\t" + "la valeur est:" + "\t" +(Integer) valeur);
 
	}
 
 
}
 
	catch(IOException ioe){}
 
}
}
>