Map里面存的是一个个键值对, 而值也可以是一个Map, 如果这样一层一层地嵌套, 就会形成一个类似树的结构. 为了计算出”根节点”的Map中藏有几个”子节点”的Map类型对象, 我们采用迭代的方法来实现.
static int a = 1;
public static void main(String[] args)
{
Map<String, Object> manyMap = new HashMap<String, Object>();
manyMap.put("1", map);
manyMap.put("2", map);
System.out.println(manyMap);
System.out.println("到底会有几个Map呢?: " + getMapNum(manyMap));
}
public static int getMapNum(Map<String, Object> map)
{
Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
while (iterator.hasNext())
{
Map.Entry<String, Object> entry= iterator.next();
if (entry.getValue() instanceof Map<?, ?>)
{
a ++;
getMapNum((Map<String, Object>) entry.getValue());
}
}
return a;
}
其实迭代一直是我的噩梦, 但是觉睡多了, 难免会碰上那么几个噩梦……