ahmadou_20 | 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 :
- 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 :
- 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 :
- 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 :
- 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. |