我有一个
Map<String, List<String>> myMap;
我很难检索列表中的对象:例如,我可以从地图中检索
String myString = myMap.get("Toyota").toString();
但我如何从列表中检索?假设列表包含每个汽车品牌的所有型号。如何仅检索该列表中的项目 0?
谢谢
我有一个
Map<String, List<String>> myMap;
我很难检索列表中的对象:例如,我可以从地图中检索
String myString = myMap.get("Toyota").toString();
但我如何从列表中检索?假设列表包含每个汽车品牌的所有型号。如何仅检索该列表中的项目 0?
谢谢
myMap.get("Toyota").get(0)
- 应该这样做。原因是您询问myMap
“Toyota”键所指向的值。正如您在定义中定义的那样,这些值始终是类型List<String>
,这意味着调用myMap.get("Toyota")
返回一个List<String>
对象。当你get(0)
打电话时,你实际上调用get
了List<String>
您需要检索List
,然后检索其内容:
//myMap.get(key).get(listIndex);
// myMap.get("Toyota"); // gets the List object
myMap.get("Toyota").get(0);
因此,您需要使用Map#get()和List#get()。
该语句myMap.get("Toyota")
将返回List
key 的 value 类型Toyota
。您可以使用获取列表的第一个元素myMap.get("Toyota").get(0)
基本上,当您使用 Map 并希望根据某个键检索值时,您可以遍历 Map 并按如下方式检索它们:
for (final Entry<String, List<String>> entry : myMap.entrySet()) {
String key = entry.getKey();
List<String> value = entry.getValue();
}
如您所见,在 for 循环中,您既有键又有值。之后您可以在此处进行进一步处理。