Java 中 HashMap 的文字声明
Literal declaration of HashMap in Java
在JavaScript
中,您可以一次性声明一个JSON
对象的所有键值组合,如下所示...
var myJSON = {
'key1' : 'value 1',
'key2' : 'value 2',
'key3' : 'value 3',
'key4' : 'value 4',
'key5' : 'value 5',
'key6' : 'value 6'
};
我想知道我们是否可以在 Java
中为 HashMaps
做类似的事情。
HashMap<String, String> map = new HashMap<String, String>(
"Key 1", "Value 1",
"Key 2", "Value 2",
"Key 3", "Value 3"
);
基本上,我需要将它作为一次性只读的东西作为代码其他部分的配置。我搜索并尝试了一些解决方案,但无法使它们起作用。还是我可以采用更好的方法?
Java 中没有映射文字的概念,但您可以轻松编写一个实用方法来实现类似的功能。例如,参见 this implementation。然后您可以初始化地图(使用静态导入):
Map<String, String> map = map("k1", "v1", "k2", "v2");
另一种方法是使用 "double brace initialisation" 语法,但它会创建一个匿名内部 class,这不一定是个好主意。
虽然{{
(双括号)是反模式,但你可以这样写
HashMap<String, String> map = new HashMap<String, String>(){{
put("Key 1", "Value 1");
put("Key 2", "Value 2");
put("Key 3", "Value 3");
}};
编辑:
如果您正在寻找放置元素的更好方法,请遍历 json 并将键值放入循环中。
在JavaScript
中,您可以一次性声明一个JSON
对象的所有键值组合,如下所示...
var myJSON = {
'key1' : 'value 1',
'key2' : 'value 2',
'key3' : 'value 3',
'key4' : 'value 4',
'key5' : 'value 5',
'key6' : 'value 6'
};
我想知道我们是否可以在 Java
中为 HashMaps
做类似的事情。
HashMap<String, String> map = new HashMap<String, String>(
"Key 1", "Value 1",
"Key 2", "Value 2",
"Key 3", "Value 3"
);
基本上,我需要将它作为一次性只读的东西作为代码其他部分的配置。我搜索并尝试了一些解决方案,但无法使它们起作用。还是我可以采用更好的方法?
Java 中没有映射文字的概念,但您可以轻松编写一个实用方法来实现类似的功能。例如,参见 this implementation。然后您可以初始化地图(使用静态导入):
Map<String, String> map = map("k1", "v1", "k2", "v2");
另一种方法是使用 "double brace initialisation" 语法,但它会创建一个匿名内部 class,这不一定是个好主意。
虽然{{
(双括号)是反模式,但你可以这样写
HashMap<String, String> map = new HashMap<String, String>(){{
put("Key 1", "Value 1");
put("Key 2", "Value 2");
put("Key 3", "Value 3");
}};
编辑:
如果您正在寻找放置元素的更好方法,请遍历 json 并将键值放入循环中。