Bonjour,

J'ai un souci dans un code (java évidemment)

Je veux créer une hashtable de listes.
Cette table est remplie dans une boucle.
Or, le 'put' ne s'exécute, apparemment qu'en fin de cycle avec la dernière liste créée.

Voici mes déclarations :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
private Hashtable<Integer,Object> ht = new Hashtable<Integer,Object>();
	private ArrayList<String> liste = new ArrayList<String>();
	private Integer i;
je lance ma boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 for (i=1; i<20; i++)
        {
                liste.clear();
        	liste.add(String.valueOf(i));
        	liste.add(String.valueOf(2*i));
        	liste.add(String.valueOf(2*i+1));
        	ht.put(i, liste);
        }
je devrais obtenir :
{1=[1, 2, 3]
2=[2, 4, 5]
3=[3, 6, 7]
...
19=[19, 38, 39]}
mais j'obtiens :

19={[19, 38, 39],
18=[19, 38, 39],
17=[19, 38, 39],
...
1=[19, 38, 39]}
Qu'est-ce que je ne fais pas bien ?

Merci d'avance pour vos pistes.