我有一个TreeMap,其中包含给定年份的所有日期,因为每个键的键和值为46.现在用户提供开始日期和结束日期。我想检查地图中的开始日期和结束日期以及两者之间的容量(即每个日期的值,即46)。怎么办呢?
我可以创建一个具有日期范围的arraylist,我想可能同时迭代两个结构(arraylist和treemap)并且比较项目将起作用。不过不确定。你觉得怎么样?
答案 0 :(得分:2)
可导航地图(例如树形地图)可以通过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);
}