有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何访问Hashmap中字符串数组中的单个值?

我对地图的声明如下:

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

我通过制作几个字符串数组并将它们与相应的整数一起放入映射来初始化它

然后,我希望遍历映射中字符串数组中的所有元素。 我尝试了这两种可能性,但它们没有给我正确的值:

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

mapVar.values().toString();

我也知道数组和整数会很好地进入映射,我只是不知道如何访问它们

谢谢


共 (4) 个答案

  1. # 1 楼答案

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

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

    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);
    
  3. # 3 楼答案

    试一试

    for (String[] value : mapvar.values()) {
       System.out.println(Arrays.toString(value));
    }
    
  4. # 4 楼答案

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

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