Déclarer et Mettre de tableau de Chaîne dans la table de hachage en une seule étape
Je suis en train d'insérer des données statiques dans un HashMap en Java comme ceci:
HashMap<String,String[]> instruments = new HashMap<String, String[]>();
instruments.put("EURUSD", {"4001","EURUSD","10000","0.00001","0.1","USD"});
Mais le compilateur n'aime pas cela. La seule façon que j'ai trouvée pour insérer les données dans la table de hachage est de déclarer le tableau de chaîne séparément puis de les mettre dans la table de hachage, comme ce
String[] instruDetails = {"4001","EURUSD","10000","0.00001","0.1","USD"};
instruments.put("EURUSD", instruDetails);
Mais il n'est pas très expressif, et difficiles à maintenir
Donc ma question est, est-il une façon de faire la put()
fonctionnement et de la chaîne de déclaration de tableau en une seule étape/ligne?
Doit être new String[]{ les éléments du tableau}
OriginalL'auteur jule64 | 2012-10-04
Vous devez vous connecter pour publier un commentaire.
Cela fera:
Merci, exactement ce que je cherchais.
pouvez-vous ajouter à ce tableau?
Il suffit d'ajouter une nouvelle corde à la fin. Peut-être que je ne comprends pas ce que vous demandez?
OriginalL'auteur Baz
Pour obtenir tout cela en une seule phrase, utilisez le double croisillons d'initialisation: -
C'est également sous-classement de la
HashMap
.Ouais c'est vrai.. Mais depuis l'OP voulait en une seule étape.. Alors je lui ai donné.. 🙂 🙂
Je pense que la vraie question est pourquoi le
put
appel de méthode ne fonctionne pas. Mais encore, vous introduit l'OP avec quelque chose de nouveau, je pense. +1 🙂Ouais c'est vrai.. 🙂
OriginalL'auteur Rohit Jain
Je pense que vous avez déjà obtenu ce qui fonctionne. Mais la raison que
ne fonctionne pas est parce que
{"4001","EURUSD","10000","0.00001","0.1","USD"}
.{}
est un sucre syntaxique ou couper en Java tableau pour l'initialisation. Il est livré avec une contrainte qu'il faut toujours aller de pair avec le tableau de déclaration, sinon c'est une erreur de syntaxe.Tableau de déclaration comme
De cette façon, Java sait que le tableau qu'il a besoin de créer pour vous est en fait de
String
les éléments de type.Si vous cassez la déclaration ci-dessus comme suit
Il ne compile pas.
Et avec le
new String[]{"4001","EURUSD","10000","0.00001","0.1","USD"}
, le compilateur sait qu'il a pour instancier une nouvelle matrice dont l'élément est de typeString
(new String[]
) et initialiser le nouvellement instancié tableau avec les valeurs que vous avez fourni ({"4001","EURUSD","10000","0.00001","0.1","USD"}
).Vous pouvez obtenir le tableau avec la valeur de hachage de la carte. Mais vous ne pouvez pas ajouter à la si c'est ce que tu veux dire.
j'ai fait la chose qui amit sur le fond recommandé here pensez-vous que c'est une bonne solution? savez-vous comment faire pour imprimer quelque chose comme ça, par hasard?
OriginalL'auteur Bhesh Gurung