用于日期的Java hashmap搜索键

use*_*201 4 java search key hashmap

我有一个hashmap:map dateEvent = new HashMap(); 其中key是日期和时间,value是字符串.我用数据填充集合,其中日期格式为dd.MM.yyyy HH:mm.如何根据这种格式获取所有日期键:dd.MM.yyyy?

Boh*_*ian 10

这段代码可以解决问题:

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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里重要的是在比较之前将所有日期转换为格式为"dd.MM.yyyy"的字符串,因此如果日期相同,则小时/分钟/秒的任何差异仍然匹配.

此代码还演示了迭代地图的最佳方式(恕我直言).