Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java hashmap search keys for a date

I have a hashmap: Map dateEvent = new HashMap(); where key is a date and time and value is a string. I fill collection with data where date is in format dd.MM.yyyy HH:mm. How I can get all keys with date based on this format: dd.MM.yyyy?

like image 291
user902201 Avatar asked Dec 21 '22 09:12

user902201


1 Answers

This code will do the trick:

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");
        }
    }
}

The important thing here is that all dates are converted to a String with format "dd.MM.yyyy" before comparing, so any differences in hour/minute/second still match if the day is the same.

This code also demonstrates the best way (IMHO) to iterate over a map.

like image 125
Bohemian Avatar answered Feb 04 '23 00:02

Bohemian