我需要数据结构来有效处理日期

ant*_*abo 1 java date hashtable

我需要的是像Hashtable这样的东西,我将填写实际所需日期的价格.

例如:我将提出两个价格:1月1日:100USD,3月5日:89美元.

如果我搜索我的哈希表的价格:hashtable.get(2月14日)我需要它给我回到1月1日输入的实际价格,因为这是最后的实际价格.正常的哈希表实现不会给我任何东西,因为没有任何东西放在那个数据上.

我需要看看是否有这样的实现可以根据日期范围快速找到对象.

Phi*_*hil 5

在我的头顶,有几种方式,但我会使用TreeMap<Date>(或Calendar等).

当您需要拔出时Date date,请尝试以下操作:

  1. 尝试 get(date)
  2. 如果结果是null,则结果为headMap(date).lastKey()

其中一个将起作用.当然,首先检查大小,headMap(date)因为如果它是空的lastKey()则会抛出一个Exception.

  • +1这是正确的方法.使用TreeMap.floorEntry(date)可以使用Java 6稍微改进一下 (2认同)