我们从时间戳列表开始,它们是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
2 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
这是java8的实现方式。
List<LocalDateTime> loginTimes = Arrays.asList(LocalDateTime.of(2018, 5, 7, 8, 10),
LocalDateTime.of(2018, 5, 7, 9, 15, 20), LocalDateTime.of(2018, 6, 22, 7, 40, 30));
Map<LocalDate, Long> loginCountByDate = loginTimes.stream()
.collect(Collectors.groupingBy(LocalDateTime::toLocalDate, Collectors.counting()));
首先按日期对登录时间进行分组,然后按每个日期计算登录次数。这是我可以建议的最佳解决方案,但是它要求您使用Java8。
这是输出。
{2018-05-07=2, 2018-06-22=1}
添加回答
举报
0/150
提交
取消