我对spring和java 8更新鲜.我使用lambda表达式对列表进行了分组并得到了这种格式.
{
"2016": [
{"title":"Management","avg":0},
{"title":"Satisfaction","avg":0}
],
"2017": [
{"title":"aaa","avg":19},
{"title":"Energy","avg":6},
{"title":"energy","avg":17}
],
"2019": [
{"title":"Satisfaction","avg":0}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要获得这种格式的所有数据
{"year":2016,"Management":0,"Satisfaction":0},
{"year":2017,"Stress":19,"Energy":6,"Workload":17},
{"year":2019,"Satisfaction":0}
Run Code Online (Sandbox Code Playgroud)
所以我写了一个java代码,
Map<String, Integer> mapNew = null;
for (Map.Entry<Integer, List<Tyma>> ee : mapList.entrySet()) { //looping the output of lambda expression
mapNew = new HashMap<String, Integer>();
mapNew.put("year",ee.getKey());
List<Tyma> li = ee.getValue();
for (Tyma dept : li) {
mapNew.put(dept.getTitle(), dept.getAvg()); //getters of Tyma class
}
}
Run Code Online (Sandbox Code Playgroud)
当我返回mapNew循环外部时,它仅返回最后一个数据({"year":2019,"Satisfaction":0}).但我需要获取所有数据.
我想,当我们放入mapNew = new HashMap<String, Integer>();父循环时,它将在每次迭代中创建新对象.
我尽力使用电子书和参考资料.如果有人解决它,请觉得有用.提前致谢.