Bonjour,
Je voudrais savoir s'il y a moyen d'éviter que la 1ère clé dans une hashMap = 0![]()
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
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é ?
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Bein, à aucun moment je rajoute ce à la clé 0
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 //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.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Partager