我有一个
Map<String, List<String>> myMap;
我很难在List中检索对象: 例如,我可以从地图中检索
String myString = myMap.get("Toyota").toString();
但如何从列表中检索? 让我们说列表包含每个汽车品牌的所有型号。如何仅检索该列表中的项目0?
由于
答案 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循环中,您既有键又有值。您可以在此处进行进一步处理。