Bonjour, voici un code.resultat : Contenu de mapCode:
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 Map<String, Integer> map = new Hashtable<String, Integer>(); map.put("un", 1); map.put("deux", 2); map.put("trois", 3); map.put("quatre", 4); map.put("cinq", 346); List<Map<String, Integer>> listeA = new ArrayList<Map<String,Integer>>(); listeA.add(map); List<Map<String, Integer>> listeB = new ArrayList<Map<String,Integer>>(); listeB.add(map); List<Map<String, Integer>> listeC = new ArrayList<Map<String,Integer>>(); listeC.add(map); System.out.println("Contenu de map"); Iterator<Integer> it = map.values().iterator(); while(it.hasNext()){ System.out.print(it.next() + " "); } System.out.println(); System.out.println("Contenu de listeA"); Map<String, Integer> mA = listeA.get(0); Iterator< Integer>itA =mA.values().iterator(); while(itA.hasNext()){ System.out.print(itA.next() + " "); } System.out.println(); System.out.println("Contenu de listeB"); Map<String, Integer> mB = listeB.get(0); Iterator< Integer>itB =mB.values().iterator(); while(itB.hasNext()){ System.out.print(itB.next() + " "); } System.out.println(); System.out.println("Contenu de listeC"); Map<String, Integer> mC = listeC.get(0); Iterator< Integer>itC =mC.values().iterator(); while(itC.hasNext()){ System.out.print(itC.next() + " "); }
1 2 3 346 4
Contenu de listeA
1 2 3 346 4
Contenu de listeB
1 2 3 346 4
Contenu de listeC
1 2 3 346 4
Quand je modifie le contenu de map , je modifie le contenu des listeA,B,C, ce qui est normal.
La question : Comment changer le contenu de listeA et listeB sans changer map?
D'une façon generale il y a t il un gadget pour obtenir une liste d'objets identiques mais avec des reférences differentes ? sans cloner mes objets?
Mon algorithme sur 8000 polygones contenus dans des paires en depend :cry: .
Merci