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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 , est-ce bien comme sa qu'on récupère un élément dans une hashtable/hashmap ?

Merci