java - 将默认值添加到列表/ map

标签 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

最佳答案

您可以确定当月的天数,然后对所有天进行循环,使用 computeIfAbsent 将结果设置为零.

关于java - 将默认值添加到列表/ map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60932709/

相关文章:

java - 在 RabbitMQ 中的给定日期之后取消订阅特定队列

超时参数的 java.util.concurrent.TimeUnit 与 java.time.Duration

java - 为什么我的 JComponent 没有显示在背景 JFrame 之上?

Java - 如何定义具有变量类型的变量

java - 通过 Selenium WebDriver 验证列表元素

java - 从数组中查找完全匹配

java - 从元素中获取文本——排除内部元素的文本

java - 在fragmentActivity和他的fragment之间传递变量

java - 替换长字符串中的字符串 :

java - 在App Engine中,是否有一种方法可以获取所有子实体而不包含相同类型的父实体?