gpt4 book ai didi

java - Map仅在java中返回最后的数据

转载 作者:行者123 更新时间:2023-12-03 23:14:50 25 4
gpt4 key购买 nike

我是 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}
]
}

我需要获取像这种格式的所有数据

{"year":2016,"Management":0,"Satisfaction":0},
{"year":2017,"Stress":19,"Energy":6,"Workload":17},
{"year":2019,"Satisfaction":0}

所以我写了一段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
}

}

当我回来时mapNew在循环之外,它仅返回最后一个数据( {"year":2019,"Satisfaction":0} )。但我需要获取所有数据。

我想,当我们输入 mapNew = new HashMap<String, Integer>(); 时在父循环内,它将在每次迭代中创建新对象。

我尽力使用电子书和引用资料。如果有人解决它,感觉它很有帮助。提前致谢。

最佳答案

看起来您正在创建多个 Map 并尝试将它们存储在同一个变量中,因此当然只有最后一个 Map 会被变量引用结束。

您应该将它们存储在某个集合中。

例如,您可以将它们存储在列表中:

List<Map<String, Integer>> maps = new ArrayList<>();
for (Map.Entry<Integer, List<Tyma>> ee : mapList.entrySet()) { //looping the output of lambda expression
Map<String, Integer> mapNew = new HashMap<String, Integer>();
maps.add(mapNew);
mapNew.put("year",ee.getKey());
List<Tyma> li = ee.getValue();

for (Tyma dept : li) {
mapNew.put(dept.getTitle(), dept.getAvg()); //getters of Tyma class
}

}

关于java - Map仅在java中返回最后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46462398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com