0

在以下代码中,我使用 String 数组作为HashMap对应于单个键的值。的get()方法HashMap是返回整个数组。如果我想要数组的单个值怎么办。(说)我只想要与键“动物”相对应的“狮子”。

class HMTest{
  public static void main(String[] args){
     HashMap<String, String[]> subjects = new HashMap<String, String[]>();
     subjects.put("Fruit",new String[] {"mango","orange"});
     subjects.put("Animal",new String[] {"Lion","Tiger"});

     for(String s:subjects.get("Animal"))
       System.out.println(s);
     }
  }

我也尝试替换上面的 for 循环这样的东西

for(String[] s:subjects.get("Animal"))
       System.out.println(s[0]); 

但它给了我错误。

任何人请帮帮我。

4

4 回答 4

4

应该:

System.out.println(subjects.get("Animal")[0]);

一个数组,而不是字符串。因此,当您 时,您希望该值是一个数组。然后你想得到第一个元素。"Animal" get("Animal")

于 2013-11-12T08:26:55.090 回答
0

你不需要for. get()获取单个值。

String[] s = subjects.get("Animal");
System.out.println(s[0]);
于 2013-11-12T08:27:17.030 回答
0

如果您尝试使用以下代码:

  for(String[] s:subjects.get("Animal"))
     System.out.println(s[0]);

如果它正在工作,那么subjects.get("Animal")应该是String[][]. 但是在您的代码中,它是一种String[]. 他们不匹配..

用于 System.out.println(subjects.get("Animal")[0]);打印数组中的第一个元素。

于 2013-11-12T08:29:51.010 回答
0

由于 HashMap 的值是一个字符串数组,只需给出所需值的索引即可。说,你想看“狮子”。由于它在 Animal 数组中的索引为 0,因此您可以说

System.out.println(subjects.get("Animal")[0]);

输出:

Lion
于 2013-11-12T08:30:07.637 回答