1
2
您可以在中检索值
O(对数n)
时间利用a
找出哪一个 日期时间 对象是最接近给定的,我们需要比较两者 钥匙 :
要比较
下面是一个完整的例子,说明如何实现:
输出
|
2
1
第一个想法: 如果你知道地图上的所有时间值都是00分钟或30分钟 您可以尝试处理地图中存在的当前TimeRoundedToTheNext00或30分钟值。 例如:(伪代码,因为我不熟悉LocalDateTime)
第二个想法: 如果对地图中用作关键字的时间值进行排序,您的需求也可以被视为“找到地图中大于当前时间的第一个关键字”。通过遍历映射键,将键与currentTime进行比较,并在一个键大于测试的currentTime值时立即退出循环,您可以解决这个问题 第三个想法:即使不使用地图,也有一种简单的方法可以根据currentTime的小时和分钟值找到期望值。(也是伪代码,因为我不确定使用LocalDateTime函数的语法)
这可以被视为“计算自一天开始以来已经开始的30分钟分段的数量” |
3
1
查找当前LocalDateTime是否介于两个时间之间
可以使用
类似的东西
|
4
1
你说得对 NavigableMap 这是一个很好的方法:
我不确定这是否是你想要的确切逻辑,但你可以研究javadoc
|