Bonjour,
J ai une question a laquelle je ne trouve pas de reponse et je suis completement bloque. c est pourquoi je me tourne vers vous en esperant en avoir une chez vous.
j ai cree une classe duo tres simple qui a deux elements.
Apres, en partant d une liste [0,1,2,3,4], je cree une LinkedHashMap avec comme cle un Duo et comme valeur un Integer dans laquelle je stocke :
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 public class Duo { int a; int b; public Duo(int a, int b){ this.a = a; this.b = b; } /** * @return the a */ public int getA() { return a; } /** * @param a the a to set */ public void setA(int a) { this.a = a; } /** * @return the b */ public int getB() { return b; } /** * @param b the b to set */ public void setB(int b) { this.b = b; } }
ce que j obtiens par le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Key : (0,1) -->> Value 1 Key : (0,2) -->> Value 2 Key : (0,3) -->> Value 3 Key : (0,4) -->> Value 4 Key : (1,2) -->> Value 5 Key : (1,3) -->> Value 6 Key : (1,4) -->> Value 7 Key : (2,3) -->> Value 8 Key : (2,4) -->> Value 9 Key : (3,4) -->> Value 10
Rien de magique jusque la !!
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 LinkedHashMap<Duo, Integer> map = new LinkedHashMap<Duo, Integer>(); List<Integer> values = Arrays.asList(0,1,2,3,4); int index = 1; for(Integer value : values){ int position = values.indexOf(value); List<Integer> nextValues = values.subList(position + 1, values.size()); for(Integer nextValue : nextValues){ Duo duo = new Duo(value, nextValue); map.put(duo, index); index++; } } Iterator<Duo> iterator = map.keySet().iterator(); while (iterator.hasNext()) { Duo key = iterator.next(); int a = key.getA(); int b = key.getB(); System.out.println("Key : (" + a + ","+ b + ") -->> "+ " Value " + map.get(key)); }
Les ennuis commencent a partir du moment ou je veux recuperer le contenu de ma LinkedHashMap par le code suivant :
Sauf que je n obtiens que des Null. Et je ne sais pas ce qui se passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 for(Integer value : values){ int position = values.indexOf(value); List<Integer> nextValues = values.subList(position + 1, values.size()); for(Integer nextValue : nextValues){ Duo duo = new Duo(value, nextValue); System.out.println("Value " + map.get(duo)); } }
N.B. Peut etre il y d autres moyens pour le faire mais je tiens a utiliser une boucle for (pour parcourir la liste values value par value) pour des considerations reltives au resultat final auquel je compte aboutir (et que je n ai pas presente ici pour ne pas etre trop long)..........
Merci encore une fois de votre aide.
Partager