Java可以使用String作为索引数组键吗? (例如:array = 1;)

Java可以使用String作为索引数组键吗? 例:

array["a"] = 1; 

没有。

要做这样的事情,你必须使用一个地图。

 Map<String, Integer> aMap = new HashMap<String, Integer>(); aMap.put("a" , Integer.valueOf(1)); 

不 – 你想要一个地图来做到这一点:

 Map<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 2); 

然后得到它:

 int val = map.get("a"); //2 

您只能对数组使用方括号语法,而不能对任何集合使用。 所以像这样:

 int val = map["a"]; //Compile error 

永远是非法的。 你必须使用get()方法。

当然,在Java 7中,您可以使用菱形运算符,因此不需要第一行中的最终generics参数:

 Map<String, Integer> map = new HashMap<>(); 

不,这将是Java中的地图 。

(该types将是Map<String,Integer> 。)

不,他们不能。 但他们可以使用字符的ASCII值将被用作关键字索引

考虑

  String[] a = new String['a' + 1]; a['a'] = "Hello"; int[] b = new int['a' + 3]; b['c'] = 5; System.out.println(a[97]); System.out.print(b[99]); 

这将输出

 Hello 5