2014-10-19 104 views
-1

正在尝试循环HashMap中的嵌套值。 值如下:通过嵌套哈希映射进行迭代

{names={SomeName={age=1,otherInfo={a=1,b=2,c=3}},SomeOtherName={age=1,otherInfo={a=1,b=2,c=3}}} 

我希望能够做类似于被注释掉的代码的东西。 行“HashMap names =(HashMap)pairs;”给我这个错误:

LinkedHashMap$LinkedValueIterator.next() line: 739 [local variables unavailable]  

我希望最终能够打印出像:

“SomeName是1岁和信息一个是1,c是3”

这是到目前为止我的代码:

HashMap map = (HashMap) yaml.load(input); 
Iterator i = map.entrySet().iterator(); 
while (i.hasNext()){ 
    Map.Entry pairs = (Map.Entry)i.next(); 
    if (pairs.getKey().toString().equals("names")){ 
     HashMap names = (HashMap) pairs; 
      // Iterator namesI = names.entrySet().iterator(); 
      // while(namesI.hasNext()){ 
       // Map.Entry p = (Map.Entry)namesI.next(); 
      //} 
    } 
} 

回答

1

你对变量映射条目的变量,但如果它可能是根据您的问题的描述一个HashMap的值。尝试HashMap names = (HashMap) pairs.getValue();

+0

工作,谢谢! – user3803797 2014-10-19 01:45:55