Effectivement il y avait ca aussi, mais le NullPointer doit etre du au faite que la List n'est pas initialise.
Edit: Tu devrais plutot un ArrayList() car chez moi un new List<Rep> produit une erreur.
Version imprimable
Effectivement il y avait ca aussi, mais le NullPointer doit etre du au faite que la List n'est pas initialise.
Edit: Tu devrais plutot un ArrayList() car chez moi un new List<Rep> produit une erreur.
Pour pas etre embeter de savoir si on a initialiser ou pas cet age tu peux faire comme cela :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 HashMap<Integer, ArrayList<Rep>> h = new HashMap<Integer, ArrayList<Rep>>(); Rep r=new Rep("Pierre", 12); if (h.get(r.getage()) == null) h.put(r.getage(), new ArrayList<Rep>()); h.get(r.getage()).add(r); Rep r1=new Rep("Pierre", 12); if (h.get(r1.getage()) == null) h.put(r1.getage(), new ArrayList<Rep>()); h.get(r1.getage()).add(r1); Rep r2=new Rep("Michelle", 12); if (h.get(r2.getage()) == null) h.put(r2.getage(), new ArrayList<Rep>()); h.get(r2.getage()).add(r2);
Il faut aussi faire un test si il y a aucune personne d'un age donne sinon tu va avoir un nullpointer:
Code:
1
2
3
4
5
6
7 int nbj; int nbATester = 0; if (h.get(nbATester) != null) nbj=h.get(nbATester).size(); else nbj = 0;
merci, encore, maintenant ça tourne avec ce code :
Mais il me dit qu'il n'y a qu'une personne ayant 12 ansCode:
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 import java.util.*; class Rep implements Comparable<Rep> { private String nom; private int age; Rep(String nomf, int agef) { nom=nomf; age=agef; } public String getnom() { return nom; } public int getage() { return age; } public int compareTo(Rep o) { if( this.age < o.getage()) return 1; if( this.age == o.getage()) return 0; else return -1; }; } public class Memeage1 { public static void main(String args[]) { HashMap<Integer, List<Rep>> h = new HashMap<Integer, List<Rep>>(); Rep r=new Rep("Pierre", 12); h.put(r.getage(), new ArrayList<Rep>()); h.get(r.getage()).add(r); Rep r1=new Rep("Jean", 12); h.put(r1.getage(), new ArrayList<Rep>()); h.get(r1.getage()).add(r1); Rep r2=new Rep("Michelle", 12); h.put(r2.getage(), new ArrayList<Rep>()); h.get(r2.getage()).add(r2); int nbj; nbj=h.get(12).size(); System.out.print("*"+nbj+"*"); System.out.println(); } }
Regarde mon post precedant je l'ai edite :ccool:
Car la tu remets la List a 0 a chaque fois.
Désolé, ça ne marche pas chez moi, mais ça ajoute des erreurs.
Je ne comprend pas la logique, non plus :
tu test h.get(r.getage())
tu force 12
et tude nouveau.Code:
1
2 h.get(r.getage()).add(r);
As tu lu mon dernier post ça marche, mais en comptant mal ?
Enfaite c'est bien ca :
Le 12 etait une erreur, pour la logique je test si h.get(r.getage()) est null si c'est le cas je put pour cette tranche d'age une nouvelle list sinon je le fait pas sinon ca reset tous.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 HashMap<Integer, ArrayList<Rep>> h = new HashMap<Integer, ArrayList<Rep>>(); Rep r=new Rep("Pierre", 12); if (h.get(r.getage()) == null) h.put(r.getage(), new ArrayList<Rep>()); h.get(r.getage()).add(r); Rep r1=new Rep("Pierre", 12); if (h.get(r1.getage()) == null) h.put(r1.getage(), new ArrayList<Rep>()); h.get(r1.getage()).add(r1); Rep r2=new Rep("Michelle", 12); if (h.get(r2.getage()) == null) h.put(r2.getage(), new ArrayList<Rep>()); h.get(r2.getage()).add(r2);
:bravo:
J'ai été déconnecté, génial.
Je vais être prudent, procéder aussi avec des verif.
Merci beaucoup