首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#到Java -字典?

C#到Java -字典?
EN

Stack Overflow用户
提问于 2011-07-31 08:09:50
回答 4查看 41.4K关注 0票数 51

在Java中,是否可以创建一个包含已在其中声明的项的字典?就像下面的C#代码一样:

代码语言:javascript
复制
   Dictionary<string, int> d = new Dictionary<string, int>()
    {
        {"cat", 2},
        {"dog", 1},
        {"llama", 0},
        {"iguana", -1}
    };

我如何做到这一点,我使用什么类型?我读到过字典已经过时了。

EN

回答 4

Stack Overflow用户

发布于 2011-07-31 08:13:54

代码语言:javascript
复制
Map<String,Integer> map = new HashMap<String, Integer>(){{
put("cat", 2);
put("dog", 1);
put("llama", 0);
put("iguana", -1);
}};
票数 12
EN

Stack Overflow用户

发布于 2011-07-31 08:25:51

咬紧牙关,键入地图名称!

代码语言:javascript
复制
    Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("cat", 2);
    map.put("dog", 1);
    map.put("llama", 0);
    map.put("iguana", -1);

您也可以这样做,这可能会省去一些长列表的输入:

代码语言:javascript
复制
    Object[][] values = {
        {"cat", 2},
        {"dog", 1},
        {"llama", 0},
        {"iguana", -1}
    };

    for (Object[] o : values) {
        map.put((String) o[0], (Integer) o[1]);
    }
票数 5
EN

Stack Overflow用户

发布于 2011-07-31 08:50:57

如果使用Guava library,则可以单独使用其ImmutableMap类(示例1和2),也可以将其用作HashMap的初始化器(示例3和4):

代码语言:javascript
复制
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)
);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6886712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档