的Java HashMap的搜索鍵我有一個HashMap: 地圖dateEvent =新的HashMap();其中key是日期和時間,value是字符串。 我用日期格式爲dd.MM.yyyy的數據填充集合HH:mm。 如何根據這種格式獲取所有帶日期的密鑰:dd.MM.yyyy?約會
約會
回答
此代碼將這樣的伎倆:
public static void findEvents(Map<Date, Event> dateEvents, Date targetDate) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
String target = dateFormat.format(targetDate);
for (Map.Entry<Date, Event> entry : dateEvents.entrySet()) {
if (dateFormat.format(entry.getKey()).equals(target)) {
System.out.println("Event " + entry.getValue() + " is on the specified date");
}
}
}
這裏最重要的是,所有的日期將被轉換與格式「DD.MM.YYYY」的字符串比較之前,所以在任何差異小時/分鐘/秒仍然匹配,如果一天是相同的。
此代碼還演示了遍歷地圖的最佳方式(恕我直言)
如果您需要密鑰和值,這肯定是迭代地圖的最佳方式。代碼分析器如FindBugs也會注意到這一點。 – musiKk
謝謝你的快速幫助 - 它對我很好用! :) – user902201
不知道我是否可以得到你的權利。但是,您使用map.keySet()
從地圖中獲取了一組鍵。如果您想查找所有不同的日期,請將所有日期填入集合中。如果您想將精度降低到幾天,一種解決方案是將日期轉換爲所需的格式,並將這些字符串添加到一組中。重複將被自動刪除。
例如爲:
Map<Date, String> yourMap = [..];
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");
Set<String> differentDates = new HashSet<String>();
for (Date date: yourMap.keySet()) {
differentDates.add(simpleDateFormat.format(date));
}
你有(至少)兩個選項:
你可以寫你自己的日期類提供的hashCode()
和equals()
適當的實現。 (如果這樣做,不建議您將該類基於另一個已定義這些方法的類(例如java.util.Date
)。)
蠻力的替代方法是掃描所有的鍵是否符合您的標準。
有日期01.01.2011
(DD.MM.YYYY)和日期01.01.2011 00:00
(DD.MM.YYYY HH:MM)之間沒有差別。
Date
持有long
具有小時和分鐘。即使public Date(int year, int month, int date)
- 1. 約會
- 2. 約會
- 3. 在約會範圍內分配約會
- 4. 約瓶會話
- 5. 的preg_match約會
- 6. Outlook 2007 - 約會
- 7. 檢索約會
- 8. smarty和約會
- 9. EWS約會提醒
- 10. Jekyll約會一個
- 11. 獲取Outlook約會,包括使用EWS的經常性約會
- 12. 以約會的方式將約會添加到Oracle日曆10
- 13. 自動創建Outlook約會
- 14. 獲取約會的週數
- 15. 約會對象被送到
- 16. 簽約大會在Visual Studio
- 17. 禁止特定約會
- 18. ServiceObjectPropertyException上的EWS約會
- 19. C#日曆約會捕獲
- 20. JavaScript定期約會庫
- 21. 檢索當前Outlook約會
- 22. iphone ui約會選取器
- 23. Telerik RadScheduler和約會屬性
- 24. 驗證真正的約會
- 25. Twillio約會系統解析
- 26. jQuery FullCalendar JSON約會問題
- 27. ics c#asp.net約會邀請
- 28. 生成約會(日期)
- 29. 用約會填充日曆
- 30. 按代碼刪除約會
我希望你使用泛型,你忘記它寫在這裏。永遠不要使用原始類型。 – user219882
當你說key是一個日期和時間時,你是指'dd.MM.yyyy HH:mm'形式的'Date'對象還是'String'對象? – Qwerky
http://stackoverflow.com/questions/6261237/sort-keys-which-are-date-entries-in-a-hashmap這可能會幫助你。這不是確切的案例,但有一個有用的代碼與日期作爲關鍵。 – user219882