Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中HashMap的文字声明_Java_Hashmap_Literals - Fatal编程技术网

Java中HashMap的文字声明

Java中HashMap的文字声明,java,hashmap,literals,Java,Hashmap,Literals,在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<Stri

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"
);
HashMap-map=新的HashMap(
“键1”、“值1”,
“键2”,“值2”,
“键3”、“值3”
);

基本上,我需要将其作为一次性只读内容,作为代码其他部分的配置。我搜索并尝试了一些解决方案,但都没有成功。或者有更好的方法吗?

Java中没有映射文本的概念,但您可以轻松编写一个实用方法来实现类似的功能。例如,见。然后可以初始化映射(使用静态导入):

Map Map=Map(“k1”、“v1”、“k2”、“v2”);
另一种方法是使用“双大括号初始化”语法,但它会创建一个匿名的内部类,这不一定是一个好主意。

虽然
{{{
(双大括号)是一种反模式,但您可以编写类似这样的代码

HashMap<String, String> map = new HashMap<String, String>(){{
put("Key 1", "Value 1");
put("Key 2", "Value 2");
put("Key 3", "Value 3");    
}};
HashMap=newhashmap(){{
put(“键1”、“值1”);
put(“键2”、“值2”);
put(“键3”、“值3”);
}};
编辑:


如果您正在寻找放置元素的更好方法,请迭代json并将键值放入循环中。

@marounnaroun这不是重复的。静态映射不等于
文字声明
@sᴜʀᴇsʜᴀᴛᴛᴀ 竖起大拇指。重新打开。@Marounnaroun回答:)@Marounnaroun也不同意这一点:-/@suresh:我觉得这是一个很好的副本。尤其是因为你的答案与其中一个答案相同:是的……我不喜欢双“{”解决方案。@JordiCastilla或not!映射将包含对封闭类的引用,这可能是不需要的…只是在
"值3
…;)@assylias我的意见…但这是OP询问的方式,我更喜欢你的示例,是的,但OP询问的是一种类似于JSon的静态方式…这是一种方式…我问过最后是否有更好的解决方案。我猜这是一种解决方案,但可能更倾向于使用assylias的回答,是吗?基本上,这只是一次性只读变量。我不会处理它。所以我更喜欢最有效的方法。@ShahidThaika您可以自由选择答案:)
HashMap<String, String> map = new HashMap<String, String>(){{
put("Key 1", "Value 1");
put("Key 2", "Value 2");
put("Key 3", "Value 3");    
}};