如何在Hashmap中访问字符串数组中的各个值?

时间:2011-05-20 14:59:05

标签: java hashmap arrays

我对地图的声明如下:

Map<Integer, String[]> mapVar = new HashMap<Integer, String[]>();

我通过制作几个字符串数组并使用相应的Integer将它们放入我的地图来初始化它。

我想迭代遍历地图中我的String数组中的所有元素。 我尝试了这两种可能性,但他们没有给我正确的价值观:

for(int ii =0; ii < 2; ii++)
  System.out.println(((HashMap<Integer, String[]>)mapVar).values().toArray()[ii].toString());

mapVar.values().toString();

我也知道数组和Integer正好进入地图,我只是不知道如何访问它们。

由于

4 个答案:

答案 0 :(得分:3)

尝试

for (String[] value : mapvar.values()) {
   System.out.println(Arrays.toString(value));
}

答案 1 :(得分:3)

for (String[] strings : mapVar.values()) {
  for (String str : strings) {
     System.out.println(str);
  }
}

这将打印Strings中所有数组中的所有Map

答案 2 :(得分:1)

for (Map.Entry<Integer, String[]> entry : mapVar.entrySet()) {
   for (String s : entry.getValue()) {
      // do whatever
   }
}

答案 3 :(得分:0)

如果您希望能够将所有地图中的String值作为一个单元访问而不是处理中间数组,我建议使用{{3} } Guava

ListMultimap<Integer, String> multimap = ArrayListMultimap.create();
// put stuff in the multimap
for (String string : multimap.values()) { ... } // all strings in the multimap

当然,您还可以访问与特定密钥相关联的String列表:

List<String> valuesFor1 = multimap.get(1);