2011-11-18 38 views
0

我有一個TreeMap,其中包含給定年份的所有日期,因爲每個項的鍵和值都是46.現在用戶提供開始日期和結束日期。我想檢查地圖中的開始日期和結束日期以及中間範圍的容量(即每個日期的值,即46)。如何才能做到這一點?Java將Arraylist中的項目與TreeMap中的項目進行比較

我可以創建一個日期範圍的數組列表,我想也許在同一時間遍歷兩個結構(數組列表和樹狀圖),並比較項目將工作。但不知道。你怎麼看?

回答

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); 
} 
+0

我真不明白什麼mincapacity和MAXCAPACITY是誰?因此我無法理解每一個。 另一件事是:一旦我可以檢查容量,那麼我想反映主圖中的變化,而不是子...這是怎麼完成的? –

+0

http://www.java-examples.com/get-sub-map-java-treemap-example 這回答了變化的反思...所以你只是不清楚關於mincap和maxcap –

+0

我不明白原來的問題,但關於這個例子,我會使用NavigableMap.subMap(),而不是SortedMap.subMap()。 NavigableMap方法允許指定是否需要包含/排除第一個/最後一個元素。 – Alexandr

相關問題