为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

桃花长相依 2021-05-14 18:14:27
我们从时间戳列表开始,它们是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}


查看完整回答
反对 回复 2021-05-26
  • 2 回答
  • 0 关注
  • 212 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信