问题描述
我想实现一种分组算法,以将此列表分为分钟间隔。
示例列表:
List<Item> items = Arrays.asList(
new Item(LocalDateTime.parse("2020-08-21T00:00:00"),LocalDateTime.parse("2020-08-21T00:02:00"),"item1"),new Item(LocalDateTime.parse("2020-08-21T00:01:00"),LocalDateTime.parse("2020-08-21T00:03:00"),"item2"),new Item(LocalDateTime.parse("2020-08-21T00:03:00"),LocalDateTime.parse("2020-08-21T00:07:00"),"item3"),new Item(LocalDateTime.parse("2020-08-21T00:08:00"),LocalDateTime.parse("2020-08-21T00:12:00"),"item4"),new Item(LocalDateTime.parse("2020-08-21T09:50:37"),LocalDateTime.parse("2020-08-21T09:56:49"),"item5"),new Item(LocalDateTime.parse("2020-08-21T09:59:37"),LocalDateTime.parse("2020-08-21T10:02:37"),"item6"),new Item(LocalDateTime.parse("2020-08-21T09:49:37"),LocalDateTime.parse("2020-08-21T09:51:37"),"item7"),new Item(LocalDateTime.parse("2019-12-31T23:59:37"),LocalDateTime.parse("2020-01-01T00:03:37"),"item8"),new Item(LocalDateTime.parse("2020-01-01T00:04:37"),LocalDateTime.parse("2020-01-01T00:06:37"),"item9")
);
物品类别:
class Item {
LocalDateTime startTime;
LocalDateTime endTime;
String name;
// constructor etc
}
为简单起见,我仅提及分钟,但日期也很重要。给定间隔为5分钟,00:00 - 00:02
可以分为范围00:00 - 00:05
的组,而00:03 - 00:07
可以分为两组00:00 - 00:05
和00:05 - 00:10
。 / p>
上述示例列表的所需输出(仅出于可读性输出而省略的名称应包含整个Item对象):
{
[item1,item2,item3],[item3,item4],[item5,item6],[item7,item5],[item8,item9]
}
是否可以使用Collectors#groupingBy之类的方法进行分组?
编辑 *为了避免出现负面评论,我在答案中添加了“无效”解决方案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)