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.

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;
	}	
}
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
 
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
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
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));		
	}
Rien de magique jusque la !!

Les ennuis commencent a partir du moment ou je veux recuperer le contenu de ma LinkedHashMap 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
 
       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));			
 		}	
	 }
Sauf que je n obtiens que des Null. Et je ne sais pas ce qui se passe.

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.