確認することをお勧めしますTreeMap
。
より前の最も近い日付を取得するには、次のdate
ように検索します。
return map.get(map.headMap(date, true).lastKey());
上記の内訳:
previous = map.headMap(date, true)
以前のすべてのエントリ (日付を含む) を返します
closestMatchingKey = previous.lastKey()
その(上記の)マップの最後のキーを返します
map.get(closestMatchingKey)
その一致を返します (または、一致しないnull
場合)
例:
public static void main(String[] args) {
TreeMap<Date, String> map = new TreeMap<>();
map.put(new Date(0), "First");
map.put(new Date(10), "Second");
map.put(new Date(20), "Third");
map.put(new Date(30), "Fourth");
map.put(new Date(40), "Fifth");
System.out.println(getClosestPrevious(map, new Date(5)));
System.out.println(getClosestPrevious(map, new Date(10)));
System.out.println(getClosestPrevious(map, new Date(55)));
}
private static String getClosestPrevious(TreeMap<Date, String> map, Date date) {
return map.get(map.headMap(date, true).lastKey());
}
出力:
First
Second
Fifth