如果将数组用作与HashMap中的键对应的值,如何获取数组的单个值?

时间:2013-11-12 08:26:01

标签: java arrays hashmap

在下面的代码中,我使用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(String[] s:subjects.get("Animal"))
       System.out.println(s[0]); 

但它给了我错误。

有人请帮帮我。

4 个答案:

答案 0 :(得分:4)

应该是:

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

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

答案 1 :(得分:0)

您不需要forget()获取单个值。

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

答案 2 :(得分:0)

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

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

如果有效,则 subjects.get("Animal") 应为String[][]类型。在你的代码中,它是一种String[]类型。它们不匹配..

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

答案 3 :(得分:0)

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

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

输出:

Lion