删除小于x的TreeMap条目

maj*_*aja 5 java map treemap

我有以下TreeMap:

private Map<Date,WeekSchedule> weeks = new TreeMap<Date,WeekSchedule>();
Run Code Online (Sandbox Code Playgroud)

我需要删除所有条目,其日期在给定值之前.

最有效的方法是什么?

这是我到目前为止:

public void removeWeeksBefore(Date monDate){
    for (Map.Entry<Date, WeekSchedule> entry : weeks.entrySet()){
        if(entry.getKey().before(monDate)){
            weeks.remove(entry.getKey());   //This will destroy the iterator
        }else{
            return;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Lou*_*man 10

有效的方法可能是将其存储为a SortedMap然后使用一行

map.headMap(monDate).clear();
Run Code Online (Sandbox Code Playgroud)