Dictionary 如何将多个值推送到地图

Dictionary 如何将多个值推送到地图,dictionary,groovy,Dictionary,Groovy,我必须将多个值推送到地图上,并在我尝试的以下位置: 我有一个ename='Test1',我必须检索他的所有详细信息。因此,我进行了查询以从empname获取详细信息,结果如下: String ename='Test1' Map<String, Map<String, Object>> empData = new HashMap<String, HashMap<String, Object>>() ​def empDeta

我必须将多个值推送到地图上,并在我尝试的以下位置:

我有一个ename='Test1',我必须检索他的所有详细信息。因此,我进行了查询以从empname获取详细信息,结果如下:

   String ename='Test1'
   Map<String, Map<String, Object>> empData = new HashMap<String, 
   HashMap<String, Object>>()

   ​def empDetails=[[job:'Dev',exp:2],[job:'QA',exp:4]]
   Map<String, Object> empColl = new HashMap<String, Object>() 
   empDetails.eachWithIndex{itr,index->  //looping through empDetails   
         empColl.put("job",itr.job);  
         empColl.put("exp",itr.exp); 
   }

  empData.put(ename,empColl);
  println empData;​  //I see only one value in the map
返回

[Test1:[[job:Dev, exp:2], [job:QA, exp:4]]]
返回

[Test1:[[job:Dev, exp:2], [job:QA, exp:4]]]

您有
Map
,但正如预期的结果,您希望
Map
@daggett-我根据您的建议进行了修改,但结果看起来相同:Map empData=new HashMap()确定。但是您必须更改代码,而不仅仅是类型定义…顺便说一句,empData=[ename:empDetails]buildsresult@daggett-empData=[ename:empDetails]我没有看到ename,即“Test1”。您有
Map
,但作为预期结果,您希望
Map
@daggett-我根据您的建议进行了修改,但结果看起来相同:Map empData=new HashMap()确定。但是您必须更改代码,而不仅仅是类型定义…顺便说一句,empData=[ename:empDetails]buildsresult@daggett-empData=[ename:empDetails]我没有看到ename,即“Test1”。
def empData=[(ename):empDetails]
更好,因为它避免了使用模板字符串作为键
def empData=[(ename):empDetails]
更好,因为它避免了使用模板字符串作为键
[Test1:[[job:Dev, exp:2], [job:QA, exp:4]]]