在HashMap构造中按天将时间戳列表(Date对象)分组

我们从时间戳列表开始,它们是Date对象。我们需要将属于唯一一天的所有时间戳分组。例如,当用户登录我们的服务器时,时间戳将添加到单个列表中。我们希望能够解析此列表并分离属于同一天的所有Date对象。最终目标是能够轻松地在UI上显示按天分隔的所有登录,以及显示每天发生的登录数量。


最终的HashMap构造应如下所示:


Key                          List<Date> 


2018-07-11 

                  2018-07-11 08:14:08.540000 

                  2018-07-11 10:46:23.575000 


2018-07-12  

                  2018-07-12 12:51:48.928000 

                  2018-07-12 13:09:00.701000 

                  2018-07-12 16:04:45.890000 


2018-07-13 

                  2018-07-13 14:14:17.461000 


桃花长相依
浏览 213回答 2
2回答

侃侃无极

这是java8的实现方式。List<LocalDateTime> loginTimes = Arrays.asList(LocalDateTime.of(2018, 5, 7, 8, 10),&nbsp; &nbsp; &nbsp; &nbsp; LocalDateTime.of(2018, 5, 7, 9, 15, 20), LocalDateTime.of(2018, 6, 22, 7, 40, 30));Map<LocalDate, Long> loginCountByDate = loginTimes.stream()&nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.groupingBy(LocalDateTime::toLocalDate, Collectors.counting()));首先按日期对登录时间进行分组,然后按每个日期计算登录次数。这是我可以建议的最佳解决方案,但是它要求您使用Java8。这是输出。{2018-05-07=2, 2018-06-22=1}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java