Bonjour,
je vous expose brièvement mon problème :
J'ai une méthode popListActivity de la classe Processor qui est appelé environ toute les 10 secondes pour mettre à jour des tableaux.

Dans la classe Processor, il y a un HashMap static de type <SeanceIdent, Object>

Voici le code de SeanceIdent :

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
package Framework;
 
public class IdentSeance {
	private long activity;
	private long seance;
	public IdentSeance(long act, long s){
		seance=s;
		activity=act;
	}
	public long getActivity() {
		return activity;
	}
	public long getSeance() {
		return seance;
	}
	@Override
	public int hashCode(){
		//System.out.println("hash code appelé ! "+((String)(activity+""+seance)).hashCode());
		return ((String)(activity+""+seance)).hashCode();
	}
}
comme vous le voyez, j'ai redéfini la méthode hashCode.
le but est que deux objets IdentSeance renvoient le même hashCode si les variables activity et seances sont identiques. et cela, ça marche.

ce qui ne marche pas, c'est la HashMap.
Scénario :
- premier appel à popListActivity :

on ajoute au HashMap une entrée avec un IdentSeance dont le hashcode à renvoyé 5000000 (exemple )

- deuxième appel à popListActivity

on recherche dans le HashMap une entrée donc le hashcode est égale à 5000000. Et ça renvoie ... NULL
or moi je voudrais qu'il me renvoi l'objet précédemment enregistré, donc le hashCode de l'objet clé est 5000000 ...

c'est là le problème. pourtant, les objet entré et demandé on exactement le même hashcode, mais ça ne marche pas ! pourtant, HashMap ne se base-t-il pas sur le hashCode pour les clés ?

Merci beaucoup.

NB

bien sûr, je pourrai au lieu d'utiliser IdentSeance comme clé utilisé IdentSeance.hashCode(), seulement, j'aimerai garder IdentSeance en entier, au cas ou je voudrais parcourir le HashMap ...

EDIT

euh ... peut-être aurais-je mieux fait de posté ceci dans le forum sur java.util
http://www.developpez.net/forums/f40...pis/java-util/

je viens juste de le voir, je connais pas encore tous les sous-forum