Java 基于日期在hashmap中聚合数据
我的Spring boot后端管理应用程序和游戏。 我有评级对象,在这个评级对象中,并将评级历史保存在HashMap中Java 基于日期在hashmap中聚合数据,java,angular,spring,jpa,Java,Angular,Spring,Jpa,我的Spring boot后端管理应用程序和游戏。 我有评级对象,在这个评级对象中,并将评级历史保存在HashMap中 // Number of history by day @ElementCollection(fetch = FetchType.EAGER) private Map<String, Integer> ratingHistory = new HashMap<>(); 这个json将增长 我想显示一个图表,显示以下各项评级的演变: 本周:我将返回hash
// Number of history by day
@ElementCollection(fetch = FetchType.EAGER)
private Map<String, Integer> ratingHistory = new HashMap<>();
这个json将增长
我想显示一个图表,显示以下各项评级的演变:
本周:我将返回hashmap中的最后7个数据
当我想显示以下内容时,如何聚合并返回已处理的数据:
- 最近30天的评级变化(我想展示第1周(本周所有天数的总和)、第2周、第3周、第4周)
- 最近3个月(5月(本月所有天数之和)、6月、7月)
- 从应用程序的开始
谢谢假设您使用的是Java 8+,您应该将
映射
更改为a,实际上它将是a
这确保了键是可排序的,允许您调用,这将有助于地图变得非常大
此外,使用可以更容易地通过以下方式进行分组:
- 周:
,以及两种方法和方法WeekFields.of(Locale.US)
- 月份:
至于如何使用Java 8+流进行实际聚合,web上有很多这样的示例,使用
collect(collector.groupingBy(…)
,例如..假设您使用的是Java 8+,您应该将映射
更改为a,实际上这将是一个
这确保了键是可排序的,允许您调用,这将有助于地图变得非常大
此外,使用可以更容易地通过以下方式进行分组:
- 周:
,以及两种方法和方法WeekFields.of(Locale.US)
- 月份:
至于如何使用Java 8+流进行实际聚合,web上有很多这样的示例,使用
collect(collector.groupingBy(…)
,例如..非常感谢。我使用java 8,我将更改为localDate,并再次尝试它。我使用Java8,我将更改为localDate并重试
"ratingHistory": {
"07/01/2020": 12,
"07/02/2020": 5,
"07/03/2020": 0
}