Java - 如何遍历散列表列表的散列图
问题描述:
我想遍历散列表列表的散列图。Java - 如何遍历散列表列表的散列图
例如,
HashMap <String, List <HashMap<String, String> > >
如何遍历这个地图。
请帮我找到解决办法。
答
您应该仔细查看一下您的设计,这听起来像是可以用更简单的方式构建的东西。考虑将这个集合分解成类。 但是,如果你现在不能改变它(或没有时间),我会提供一个手。
最简单的方法可能是向上突破迭代在几个步骤:在列表
- 迭代内包含HashMap
- 迭代
- 遍历在内部包含HashMap的内容
以下是基本代码:
for(List<HashMap<String, String>> list : outer.values()) {
for(HashMap<String, String> map : list) {
for(String value : map.values()) {
//Do something
}
}
}
答
让我们为您的地图命名。
HashMap<String, List<HashMap<String, String>>> map; //I'll assume it is initialized and filled with something.
for (String key : map.keySet()) {
for (HashMap<String, String> map2 : map.get(key)) {
for (String key2 : map2.keySet()) {
//do something
}
}
}
另一种方法是通过集合使用嵌套循环:
for (List<HashMap<String, String>> list : map.values()) {
for (HashMap<String, String> map2 : list) {
for (String veryInnerValue : map2.values()) {
//do something
}
}
}
的不同位。如果你不需要知道价值的关键,那么第二个更好。
答
如果您需要知道每个地图键和值:
Map<String, List<HashMap<String, String>>> myMap = new HashMap<String, List<HashMap<String, String>>>();
// loop for first map
for (Entry<String, List<HashMap<String, String>>> myMapEntry : myMap.entrySet()) {
System.out.println("myMap entry key" + myMapEntry.getKey() + ", key ");
// loop for list (value of entry)
for (HashMap<String, String> valueOfList : myMapEntry.getValue()) {
// loop for second map
for (Entry<String, String> entryOfMapOfList : valueOfList.entrySet()) {
System.out.println("key " + entryOfMapOfList.getKey() + " value " + entryOfMapOfList.getValue());
}
}
}
写一些Java代码。 –
迭代嵌套结构=嵌套循环 – 4castle
不要。如果你有这样的数据结构,你有设计问题。 – Raedwald