将字符串映射到int数组 - Java

时间:2011-04-24 23:57:22

标签: java arrays static

如何将字符串映射到静态定义的整数数组?我试过了

private static Map<String, int[]> map = new HashMap<String, int[]>();
static {
    map.put("foo", {5, 1, 3, 2});
    map.put("bar", {2, 7, 8});
}

告诉我{5,1,3,2}是非法的。

3 个答案:

答案 0 :(得分:9)

在初始化内容之前,需要调用数组的构造函数。

map.put("foo", new int[]{5, 1, 3, 2});

答案 1 :(得分:5)

尝试

private static Map<String, int[]> map = new HashMap<String, int[]>();
static {
    map.put("foo", new int[]{5, 1, 3, 2});
    map.put("bar", new int[]{2, 7, 8});
}

答案 2 :(得分:0)

如果永远不会更改地图,您可以使用Guava lib:

private static ImmutableMap<String, int[]> immutaleMap =
    ImmutableMap.of("foo", new int[]{5, 1, 3, 2},
                    "bar", new int[]{2, 7, 8});