Comment utiliser correctement HashMap?
HashMap savedStuff = new HashMap();
savedStuff.put("symbol", this.symbol); //this is a string
savedStuff.put("index", this.index); //this is an int
me donne l'avertissement:
HashMap is a raw type. References to generic type HashMap<K,V> should be parameterized
source d'informationauteur Sheehan Alam
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce que vous essayez de faire, mais depuis que l'exemple que vous avez fourni utilise des chaînes codées en dur pour indexer les données, il semble que vous savez quelles sont les données que vous voulez regrouper. Si c'est le cas, alors une Carte n'est probablement pas un bon choix. La meilleure approche serait de faire une classe de l'communément regroupées données:
Cela permet à votre code client pour ce faire:
Plutôt que de ceci:
L'ancien exemple est beaucoup moins fragile parce que vous n'êtes pas de l'indexation des données avec des constantes de Chaîne. Il vous donne aussi une place pour ajouter un comportement sur le dessus de vos données groupées, ce qui rend votre code plus orientée objet.
Bien sûr, vous devez toujours être prudent d'utiliser le bon type lors de l'extraction des éléments.
Vous devez utiliser les génériques comme indiqué ci-dessous :
À l'aide de
HashMap<String, Object>
est probablement le meilleur que vous pouvez faire si vous insistez pour avoir des valeurs hétérogènes dans la même carte-vous aurez besoin de jeter ceux de faire quelque chose d'utile lorsque vous les récupérer (et comment allez-vous savoir quel type de chasser les à...?), mais au moins vous serez typesafe à l'égard de la clés.Ici est une Approche différente:
Une classe d'assistance qui contient une carte et offre différents points de vue:
Avant de vous permettrait de récupérer une valeur int, vous vérifiez la valeur de
store.containsIntValue(intKey)
et avant de récupérer une valeur de Chaîne, vous devez cocherstore.containsStringValue(stringKey)
. De cette façon, vous ne jamais récupérer des valeurs de type incorrect.(Peut évidemment être étendu pour prendre en charge d'autres types d')
C'est simple code pour l'utilisation de la table de hachage. Là, je vais utiliser la clé comme un entier et la valeur comme de type chaîne. La carte est très utile lors de notre fonctionnalité fonctionne sur les clés et les valeurs paires. Ci-dessous est un exemple simple d'utilisation table de hachage. J'espère qu'il est très utile pour tous.
public class CreateHashMap {
}
Référence : créer et utiliser de carte