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){} } } >
Partager