Я попытался реализовать метод для поиска строки в RangeMap.Я хочу проверить, что metricName находится в RangeMap и присутствует в заданном диапазоне времени.
private static RangeMap<Long, String> salesRangeMap = TreeRangeMap.create();
salesRangeMap.put(
Range.closed(1540038517L, 1540645753L), "Metric1");
public static boolean isMetricPresent(String metricName, long theKey) {
String metricFromMap = Objects.requireNonNull(salesRangeMap.get(theKey));
if (StringUtils.containsIgnoreCase(metricName, metricFromMap)) {
return true;
}
return false;
}
Ключом в salesRangeMap является диапазон от October 20, 2018 12:28:37 PM
до October 27, 2018 1:09:13 PM
(в удобочитаемом формате).
Однако, когда я вызываю метод isMetricPresent
, подобный этому иПередав его System.currentTimeMillis()
в качестве ключа (который равен этому значению временной метки 1540476195830
-> October 25, 2018 2:03:15.830 PM
), он возвращает null
при этом вызове salesRangeMap.get(theKey)
.
long currentTime = System.currentTimeMillis(); // 1540476195830
boolean isPresent = isMetricPresent("Metric1", currentTime);
Что касается моегов текущем понимании ключ currentTime
присутствует в диапазоне salesRangeMap
.Что не так в моем нынешнем подходе?