Il n'y a pas de moyen direct pour ce faire, Java n'a pas de Carte littéraux (encore - je pense qu'ils ont été proposées pour Java 8).
Certaines personnes comme ceci:
Map<String,String> test = new HashMap<String, String>(){{
put("test","test"); put("test","test");}};
Cela crée un anonyme sous-classe de la table de hachage, dont l'instance de l'initialiseur met ces valeurs. (En passant, une carte ne peut pas contenir deux fois la même valeur, votre deuxième mettre remplacera le premier. Je vais utiliser des valeurs différentes pour les exemples suivants.)
La façon normale, ne serait-ce (pour une variable locale):
Map<String,String> test = new HashMap<String, String>();
test.put("test","test");
test.put("test1","test2");
Si votre test
carte est une variable d'instance, mettre l'initialisation dans le constructeur ou l'instance de l'initialiseur:
Map<String,String> test = new HashMap<String, String>();
{
test.put("test","test");
test.put("test1","test2");
}
Si votre test
carte est une variable de classe, mettre l'initialisation dans un initialiseur statique:
static Map<String,String> test = new HashMap<String, String>();
static {
test.put("test","test");
test.put("test1","test2");
}
Si vous voulez que votre carte ne change jamais, vous devriez après l'initialisation de l'enveloppe de votre carte en Collections.unmodifiableMap(...)
. Vous pouvez le faire dans un initialiseur statique:
static Map<String,String> test;
{
Map<String,String> temp = new HashMap<String, String>();
temp.put("test","test");
temp.put("test1","test2");
test = Collections.unmodifiableMap(temp);
}
(Je ne suis pas sûr si vous pouvez maintenant faire de la test
final ... l'essayer et de signaler ici.)