[Java] encore les hashmaps ! (recup la clé ?)

encore les hashmaps ! (recup la clé ?) [Java] - Java - Programmation

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 :
 

Citation :


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!

Reply

Marsh Posté le 15-02-2004 à 18:16:45   

Reply

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.

Reply

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.

Reply

Marsh Posté le 15-02-2004 à 23:09:19    

ben tu fais taMap.get(new Auteur(leCode)) [:spamafote]
 
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 ...


Message édité par benou le 15-02-2004 à 23:10:29
Reply

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 :(

Reply

Marsh Posté le 15-02-2004 à 23:14:29    

j'ai édité.
 
mais comme je le dis c'est foireux ton truc.

Reply

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...

Reply

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 :
  1. public class Index {
  2. /**
  3.  *  
  4.  */
  5. private List index;
  6. private Comparator comp;
  7. public Index(Comparator comp) {
  8.  index = new ArrayList();
  9.  this.comp = comp;
  10. }
  11. public void add(Object o) {
  12.  int pos = Collections.binarySearch(index,o,comp);
  13.  if (pos < 0)
  14.  index.add(-pos-1, o);
  15. }
  16. public Object search(Object o) {
  17.  int indice = Collections.binarySearch(index,o,comp);
  18.  if (indice > 0) {
  19.   return index.get(indice);
  20.  }
  21.  else return null;
  22. }
  23. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed