2011-04-24 50 views
2

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

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}是非法的。

回答

9

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

map.put("foo", new int[]{5, 1, 3, 2}); 
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}); 
} 
0

如果地图将永远不会改变,你可以使用Guava LIB:

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