我們從時間戳列表開始,它們是Date對象。我們需要將屬于唯一一天的所有時間戳分組。例如,當用戶登錄我們的服務器時,時間戳將添加到單個列表中。我們希望能夠解析此列表并分離屬于同一天的所有Date對象。最終目標是能夠輕松地在UI上顯示按天分隔的所有登錄,以及顯示每天發(fā)生的登錄數量。最終的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
提交
取消