在Java中,是否可以创建一个包含已在其中声明的项的字典?就像下面的C#代码一样:
Dictionary<string, int> d = new Dictionary<string, int>()
{
{"cat", 2},
{"dog", 1},
{"llama", 0},
{"iguana", -1}
};
我如何做到这一点,我使用什么类型?我读到过字典已经过时了。
发布于 2011-07-31 08:13:54
Map<String,Integer> map = new HashMap<String, Integer>(){{
put("cat", 2);
put("dog", 1);
put("llama", 0);
put("iguana", -1);
}};
发布于 2011-07-31 08:25:51
咬紧牙关,键入地图名称!
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("cat", 2);
map.put("dog", 1);
map.put("llama", 0);
map.put("iguana", -1);
您也可以这样做,这可能会省去一些长列表的输入:
Object[][] values = {
{"cat", 2},
{"dog", 1},
{"llama", 0},
{"iguana", -1}
};
for (Object[] o : values) {
map.put((String) o[0], (Integer) o[1]);
}
发布于 2011-07-31 08:50:57
如果使用Guava library,则可以单独使用其ImmutableMap
类(示例1和2),也可以将其用作HashMap的初始化器(示例3和4):
Map<String, Integer> map1 = ImmutableMap.<String, Integer> builder()
.put("cat", 2)
.put("dog", 1)
.put("llama", 0)
.put("iguana", -1)
.build();
Map<String, Integer> map2 = ImmutableMap.of(
"cat", 2,
"dog", 1,
"llama", 0,
"iguana", -1
);
Map<String, Integer> map3 = Maps.newHashMap(
ImmutableMap.<String, Integer> builder()
.put("cat", 2)
.put("dog", 1)
.put("llama", 0)
.put("iguana", -1)
.build()
);
Map<String, Integer> map4 = Maps.newHashMap( ImmutableMap.of(
"cat", 2,
"dog", 1,
"llama", 0,
"iguana", -1)
);
https://stackoverflow.com/questions/6886712
复制相似问题