将默认值添加到列表/地图

时间:2020-03-30 14:26:00

标签: java

我有这段代码可以获取应用程序中每天的用户数量。

    List<UserApplication> usersOfCurrentMonth = userApplicationRepository.getUsersOfCurrentMonth();

    Map<Object, Long> dailyUserActivity = usersOfCurrentMonth.stream().collect(Collectors.groupingBy(a-> ((UserApplication)a).getCreationDate(), Collectors.counting()));

查询

@Query(value = "select * from user_application a where year(a.creationDate) = year(current_date) and  month(a.creationDate) = month(current_date)", nativeQuery = true)
List<UserApplication> getUsersOfCurrentMonth();

效果很好

2020-03-30T14:21:09.003+0000: 1

但是我想念该月剩下的日子。有没有办法在该月的其他所有天加0?

例如

 2020-03-01T14:21:09.003+0000: 0
 2020-03-02T14:21:09.003+0000: 0
 ....
 2020-03-30T14:21:09.003+0000: 1

1 个答案:

答案 0 :(得分:1)

您可以确定当月的天数,然后遍历所有天,使用computeIfAbsent将结果设置为零。