2011-11-18 2 views
0

각 키의 키와 값이 46이므로 주어진 연도의 모든 날짜를 포함하는 TreeMap이 있습니다. 이제 사용자가 시작 날짜와 종료 날짜를 제공합니다. 시작일과 종료일 및 그 중간에있는 범위에 대한 용량 (즉, 각 날짜의 값 즉, 46)을지도에서 확인하고 싶습니다. 어떻게 할 수 있습니까?Java Arraylist의 항목과 TreeMap의 비슷한 항목을 비교하십시오.

날짜 범위가있는 arraylist를 만들 수 있으며, 동시에 두 구조 (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 변경 사항 반영 ... 그래서 yeh는 mincap 및 maxcap에 대해 분명하지 않습니다. –

+0

원래 질문을 이해하지 못했습니다. , 그러나 예제에 관한 NavigableMap.subMap(),하지만 SortedMap.subMap() 사용할 것이다. NavigableMap 메서드를 사용하면 처음/마지막 요소를 포함/제외해야하는지 여부를 지정할 수 있습니다. – Alexandr