encore les hashmaps ! (recup la clé ?) [Java] - Java - Programmation
Marsh Posté le 15-02-2004 à 19:00:05
attend, d'après tes autres topics, le equals et le hashcode de Auteur ne dépendait que de l'attribut code. Si c'est le cas, tu ne peux pas avoir 2 auteurs avec le même code dans la map : l'un va remplacer l'autre.
Marsh Posté le 15-02-2004 à 22:25:01
Je n'ai pas été très clair.
Voici la fonction que je dois faire d'après l'interface qui ma été fournis :
public Auteur getAuteur(int codeNum) {
return Auteur;
}
Donc ce que je fait, c'est que je construit un Auteur avec le codeNum (auteur b) et j'aimerais avec l'auteur b pouvoir récuperer l'auteur a dans la hashmap.
Marsh Posté le 15-02-2004 à 23:09:19
ben tu fais taMap.get(new Auteur(leCode))
edit.
heu nan, c'est la clef que tu veux récupérer toi ...
bha, c'est foireux ton truc. Tu veux faire plein de trucs avec la même structure ...
Marsh Posté le 15-02-2004 à 23:11:26
Avec le get je récupère la valeur (donc la liste d'album) et non l'auteur
Marsh Posté le 15-02-2004 à 23:17:58
Je suis d'accord mais le prof exige d'utilisé une map
Bon je vais utiliser un deuxième index (un classé par nom, un classé par code numérique), mais je suis pas sûr que le prof va aimer ça puisque je n'utilise presque plus le hashmap, donc je ne vois plus l'intérêt d'utiliser le hashmap.
Bon m'enfin...
Marsh Posté le 15-02-2004 à 23:24:23
Voici ma classe index, qu'en pensez-vous ? J'utilise une arraylist même si je sais que l'ajout sera cp plus lent que je veux que la recherche soit le plus rapide possible.
Code :
|
Marsh Posté le 15-02-2004 à 18:16:45
Voila, comme j'ai expliqué dans mes autres sujets, je dois utiliser un hashmap pour stocké une clé (objet Auteur) et la valeur (objet Collection de Livre).
Donc voici un petit exemple :
Auteur a :
code : A025
Nom : Foo
pays : GB
Auteur b :
code : A025
Nom : ""
Pays : ""
J'aimerais récupéré A dans la hashmap en sachant que :
a.hashCode() == b. hashCode()
Je sais que je pourrais parcourir les items un à un avec un Iterator mais il doit surment avoir une solution plus efficace non?
Merci encore!