Bonjour,
Je voudrais savoir s'il y a moyen d'éviter que la 1ère clé dans une hashMap = 0 :?
Version imprimable
Bonjour,
Je voudrais savoir s'il y a moyen d'éviter que la 1ère clé dans une hashMap = 0 :?
Il te suffit de ne pas mettre une clé à zéro :mrgreen:
Ta question n'est pas du tout claire.
Mais null et zéro sont complètement différent. De plus, une clé dans une HashMap est un objet. Tu sous-entends donc que tu ne voudrais pas avoir un (new Integer( 0 ) ) comme clé ?
je vais m'expliquer:
j'ai des données sur:
userID,articleID,nbr
j'ai 2 hashMap:
quand je récupère ces données dans mes HashMap et je fais un print de "artMap" par exp, j'ai:Code:
1
2
3
4
5
6 HashMap <Integer,HashMap> usrMap = new HashMap <Integer,HashMap>(); HashMap <Integer,Double> artMap = new HashMap <Integer,Double>(); ..... usrMap.put(userID,artMap); artMap.put(articleID,nbr);
{0=2.5 ; artID2=3.2 ; artID3 = 4.5....}
ça veut dire que ma 1ère clé du keySet de "artMap" a été remplacée par un 0.
c'est ce que je voudrais modifier.
La magie n'existe pas en informatique. Donc soit :
- tu as mis ce zéro dans ta map,
- ta méthode d'affichage est bancale.
Poste ta méthode d'affichage, et aussi ta méthode de remplissage de map (simplifiée si elle fait trop de lignes), car tu ne donnes pas assez d'info ;)
Bein, à aucun moment je rajoute ce à la clé 0 8O
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 //methode remplissage public void methodeAjout (int userID, int articleID, double nbr){ HashMap <Integer,HashMap> usrMap = new HashMap <Integer,HashMap>(); HashMap <Integer,Double> artMap = new HashMap <Integer,Double>(); if (usrMap.get(userID) != null){ artMap = usrMap.get(userID); artMap.put(articleID,nbr); usrMap.put(userID, artMap); .....} //methode affichage public HashMap getArtc (int userID){ HashMap dt = usrMap.get(userID); System.out.println(dt); return dt; }
Ca a l'air que, à un moment donné, userID ou articleID est à dans la méthode de remplissage.
Ca doit pas être bien dur de faire un petit debuggage ou un System.out de ces 2 variables, non?
A+
"System.out.println(dt)" signifie que tu affiches le hashcode de ta map. Ce hashcode vaut zéro.
Tu peux poster la méthode complète d'insertion ? Car tu fais un test inutile : "usrMap.get(userID) != null". Car tu déclares ta map juste avant sans rien y ajouter. A moins que tu n'ais supprimer du code entre deux pour le poster.