无法弄清楚如何在地图中检索对象

时间:2013-07-21 07:27:29

标签: java

我有一个

Map<String, List<String>> myMap;

我很难在List中检索对象: 例如,我可以从地图中检索

String myString = myMap.get("Toyota").toString();

但如何从列表中检索? 让我们说列表包含每个汽车品牌的所有型号。如何仅检索该列表中的项目0?

由于

4 个答案:

答案 0 :(得分:2)

myMap.get("Toyota").get(0) - 应该这样做。 原因是你问myMap关键字“丰田”所指的价值。正如您在定义中定义的那样,值始终为List<String>类型,这意味着调用myMap.get("Toyota")返回List<String>个对象。当您进行get(0)来电时,您实际上会调用get的{​​{1}}方法

答案 1 :(得分:1)

您需要检索List,然后检索其内容:

//myMap.get(key).get(listIndex);
// myMap.get("Toyota"); // gets the List object
myMap.get("Toyota").get(0); 

因此,您需要使用Map#get()然后使用List#get()

答案 2 :(得分:1)

语句myMap.get("Toyota")将返回List类型,该类型是键Toyota的值。您可以使用myMap.get("Toyota").get(0)

获取列表的第一个元素

答案 3 :(得分:0)

基本上,当您使用Map并希望根据某个键检索值时,您可以迭代Map并按如下方式检索它们:

for (final Entry<String, List<String>> entry : myMap.entrySet()) {
    String key = entry.getKey();
    List<String> value = entry.getValue();
}

如您所见,在for循环中,您既有键又有值。您可以在此处进行进一步处理。