1

我有一个

Map<String, List<String>> myMap;

我很难检索列表中的对象:例如,我可以从地图中检索

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

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

谢谢

4

4 回答 4

2

myMap.get("Toyota").get(0)- 应该这样做。原因是您询问myMap“Toyota”键所指向的值。正如您在定义中定义的那样,这些值始终是类型List<String>,这意味着调用myMap.get("Toyota")返回一个List<String>对象。当你get(0)打电话时,你实际上调用getList<String>

于 2013-07-21T07:29:39.167 回答
1

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

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

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

于 2013-07-21T07:29:26.710 回答
1

该语句myMap.get("Toyota")将返回Listkey 的 value 类型Toyota。您可以使用获取列表的第一个元素myMap.get("Toyota").get(0)

于 2013-07-21T07:31:34.517 回答
0

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

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

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

于 2013-07-22T08:29:01.643 回答