分组Java 8个日期间隔
Grouping Java 8 Dates in intervals
使用Java 8 java.time框架,Dates如何分组成区间?
比如每10分钟为一个间隔,给定一个列表 LocalTime
List<LocalTime> list = Arrays.asList(LocalTime.of(0,9),LocalTime.of(0,11),LocalTime.of(0,19));
如果以10分钟为间隔分组,LocalTime.of(0,9)
应该在第一组,但LocalTime.of(0,11),LocalTime.of(0,19)
在第二组。
使用Java 8次API,可以很方便的完成:
Map<Integer, List<LocalTime>> map =
list.stream()
.collect(Collectors.
groupingBy(x -> x.get(ChronoField.MINUTE_OF_DAY) / 10)
);
此示例将使用 LocalTime
并将您的帖子分组为 10 分钟一组。
注意:这原本是对 Java 8 complex custom collector 的回答,但由于它没有解决 OP 问题,并且得到了一些赞成票,所以我将其删除并为其写了一个问题。根据 JodaStephen 的评论更改了调用顺序
使用Java 8 java.time框架,Dates如何分组成区间?
比如每10分钟为一个间隔,给定一个列表 LocalTime
List<LocalTime> list = Arrays.asList(LocalTime.of(0,9),LocalTime.of(0,11),LocalTime.of(0,19));
如果以10分钟为间隔分组,LocalTime.of(0,9)
应该在第一组,但LocalTime.of(0,11),LocalTime.of(0,19)
在第二组。
使用Java 8次API,可以很方便的完成:
Map<Integer, List<LocalTime>> map =
list.stream()
.collect(Collectors.
groupingBy(x -> x.get(ChronoField.MINUTE_OF_DAY) / 10)
);
此示例将使用 LocalTime
并将您的帖子分组为 10 分钟一组。
注意:这原本是对 Java 8 complex custom collector 的回答,但由于它没有解决 OP 问题,并且得到了一些赞成票,所以我将其删除并为其写了一个问题。根据 JodaStephen 的评论更改了调用顺序