如果我的内存中有5000个或更多SampleObject
类型的对象
class SampleObject {
...
Date getLastRefreshDate()
Status getCurrentStatus()
}
我想快速获取更新日期早于某个值的对象的子列表,并且能够快速获取具有特定状态的对象,什么样的数据结构/算法会有用?迭代列表和比较是否足够快如果名单增加到25000或更多呢?
最佳答案
TreeMap<Date, SampleObject>
可以很容易地完成“比”某个日期“早”的任务——您只需使用headMap
来获取所有比某个值早的对象。
你需要一个单独的Map<Status, List<SampleObject>>
(或者,如果你可以使用第三方库,一个GuavaMultimap
)来跟踪具有某种特定状态的对象,但是我认为如果你不愿意为线性搜索付费,那么第二个数据结构是不可避免的。