Bonjour je débute avec les Map en java et je n'arrive pas à récupérer les valeurs que je mets dans ma Map, enfin lorsque je le fais localement dans une méthode ça marche, mais en dehors ça ne marche plus.
Je vous mets mon exemple tout simple, la clé est un couple d'entiers (i, j) et la valeur dans la map est un entier
ça c'est ma classe avec la Map :
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 public class testMain { public static void main(String[] args) { mapTest map = new mapTest(); // Insert values. map.addValue(1, 1, new Integer(1100)); map.addValue(1, 2, 1200); map.addValue(new Integer(1), new Integer(3), new Integer(1300)); // Display map. (OK ça marche) System.out.print(map.getMap() + "\n"); // Display values. (ne marche pas, renvoie null à chaque fois) map.print(1, 1); map.print(1, 2); map.print(new Integer(1), new Integer(3)); } }
Et ça c'est le "pairInteger" :
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 public class mapTest { private Map<pairInteger, Integer> m_mapTest = new Hashtable<pairInteger, Integer>(); public void addValue(int i, int j, int value){ pairInteger pair = new pairInteger(i, j); if (pair != null){ m_mapTest.put(pair, value); // Display value. (Là ça marche bizarrement) System.out.print((Integer)m_mapTest.get(pair) + "\n"); } } public void print(int i, int j){ pairInteger pair = new pairInteger(i, j); if (pair != null){ System.out.print((Integer)m_mapTest.get(new pairInteger(pair)) + "\n"); } } public Map<pairInteger, Integer> getMap() { return m_mapTest; } }
J'ai mis le code tel qu'il est en l'état mais j'ai essayé plein de choses avant, au niveau des news, des syntaxes différentes, des classes de map différentes ("Hashtable" qui suffit dans mon cas mais également avec "HashMap" pour tester), j'ai essayé avec une clé de type entier mais ça ne marchait pas non plus, donc là je sèche
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 public class pairInteger { private int m_i; private int m_j; public pairInteger(int i, int j) { m_i = i; m_j = j; } public pairInteger(pairInteger pair){ m_i = pair.getM_i(); m_j = pair.getM_j(); } public int getM_i() { return m_i; } public void setM_i(int m_i) { this.m_i = m_i; } public int getM_j() { return m_j; } public void setM_j(int m_j) { this.m_j = m_j; }
Merci à vous.
Partager