在下面的代码中,我使用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]);
但它给了我错误。
有人请帮帮我。
答案 0 :(得分:4)
应该是:
System.out.println(subjects.get("Animal")[0]);
"Animal"
键的值是数组,而不是字符串。因此,当您get("Animal")
时,您希望该值为数组。然后你想获得第一个元素。
答案 1 :(得分:0)
您不需要for
。 get()
获取单个值。
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