小编sac*_*chi的帖子

Map仅在java中返回最后一个数据

我对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>();父循环时,它将在每次迭代中创建新对象.

我尽力使用电子书和参考资料.如果有人解决它,请觉得有用.提前致谢.

java spring spring-mvc java-8 spring-boot

2
推荐指数
1
解决办法
96
查看次数

标签 统计

java ×1

java-8 ×1

spring ×1

spring-boot ×1

spring-mvc ×1