我有一个 TreeMap,其中包含给定年份的所有日期作为键,每个键的值是 46。现在用户提供开始日期和结束日期。我想检查地图中开始日期和结束日期的容量(即每个日期的值,即 46)以及介于两者之间的范围。如何才能做到这一点?
我可以创建一个具有日期范围的数组列表,并且我认为可能同时迭代两个结构(数组列表和树图)并比较项目会起作用。不过不确定。你怎么看?
可导航的地图(例如树形地图)可以通过其subMap(fromKey, toKey)
方法为您提供具有一系列键的地图。
所以这应该适合你:
TreeMap<Date, Integer> map = ...;
int minCapacity = Integer.MAX_VALUE;
int maxCapacity = Integer.MIN_VALUE;
for (Integer capacity : map.subMap(fromDate, toDate).entrySet()) {
minCapacity = Math.min(minCapacity, capacity);
maxCapacity = Math.max(maxCapacity, capacity);
}