我有收集时间戳,例如10:18:07.490,11:50:18.251,第一个是开始时间,第二个是事件的结束时间.我需要找到一个范围,其中最大事件发生在24小时之内.这些事件以毫秒的精度发生.
我所做的是以毫秒级划分24小时,并在每毫秒附加事件,然后找到发生最大事件的范围.
LocalTime start = LocalTime.parse("00:00");
LocalTime end = LocalTime.parse("23:59");
Run Code Online (Sandbox Code Playgroud)
for (LocalTime x = start; x.isBefore(end); x = x.plus(Duration.ofMillis(1))) {
for (int i = 0; i < startTime.size(); i++) {
if (startTime.get(i).isAfter(x) && endTime.get(i).isBefore(x))
// add them to list;
}
}
Run Code Online (Sandbox Code Playgroud)
当然这不是一个好方法,它需要太多的记忆.我怎么能以适当的方式做到这一点?有什么建议吗?