Problème HashMap, HashTable (get)
Bonsoir,
Je rencontre actuellement un problème avec un HashTable ou HashMap qui fais la correspondance entre une adresse mac et le port auquel il est connecté.
Celà toujours dans le cadre d'une simulation d'un commutateur.
Le problème est que quand je veux get le numéro du port, je me retrouves toujours avec null.
Code:
1 2 3 4 5 6 7 8 9 10
|
private Hashtable<MacAdr,Integer> macadr;
macadr = new Hashtable(100);
public synchronized void ajouter(MacAdr a, int port) {
macadr.put(a, port);
}
public synchronized int getport(MacAdr m) {
return macadr.get(m);
} |
En cherchant la raison du problème, j'ai comme contenu de la HashTable, celà en rajoutant cette source :
Code:
1 2 3 4 5 6 7
|
for (Enumeration e = macadr.elements() ; e.hasMoreElements() ;) {
System.out.println(e.nextElement());
}
for (Enumeration e = macadr.keys() ; e.hasMoreElements() ;) {
System.out.println(e.nextElement());
} |
Qui affiche bien le bon contenu :
Citation:
1
0
3
2
00:00:00:00:00:01
00:00:00:00:00:00
00:00:00:00:00:03
00:00:00:00:00:02
En faisant macadr.get(MacAdr), je devrais avoir comme valeur de retour le port (en Integer) mais j'ai toujours un null 8O, est-ce bien comme sa qu'on récupère un élément dans une hashtable/hashmap ?
Merci