的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