У меня есть мультикап java, который содержит идентификатор, сопоставленный с датой начала и датой окончания.Итерация по списку и возврату соответствующих ключей
SetMultiMap<String,List<Date>> mymap = LinkedHashMultimap.create();
Я использую эту карту в другом методе, где я хочу, чтобы получить все ключи, у которых дата окончания менее чем 1 неделю назад.
Я попытался это:
DateTime lastWeek_joda = new DateTime().minusDays(7);
Date end_date = lastWeek_joda.toDate();
теперь я итерацию следующим образом:
for (Map.Entry<String,List<date>> entry : mymap.entries())
String key = entry.getKey();
List<Date> value = entry.getValue();
if (end_date.equals(value.get(1))) {
key_set.add(key);
}
}
Это оленья кожа вернуть мне ожидаемый результат? Можно ли это сделать проще или проще? Заранее спасибо.
вы должны использовать 'CompareTo()'. Используя 'equals()', вы получите только данные точно так же, как datetime 1 неделю назад. –
Попытайтесь увидеть [как можно сравнить даты] (http://stackoverflow.com/a/2592513/1346996). – aribeiro
использование класса календаря в Java для проверки даты range.it предоставляет множество функций для фильтрации date.http: //stackoverflow.com/questions/17210839/get-last-week-date-range-for-a-date-in- Ява – gihan