我需要存储一组数据结构,这些数据结构由时间段(开始时间,结束时间)和此期间计数器组成,该计数器保存了某些复杂的计算结果。该数据结构的简化定义如下:
public class CounterBag {
private Period period; // collection key
private Counter counter;
// accessors
// ...
}
Period
就像这样简单:
public class Period {
public DateTime start;
public DateTime end;
// accessors
// ...
}
我需要一个集合来存储由不同“Periods”定义的“CounterBag”对象。 该集合需要提供有效的按“long timeInMillis”进行查找(这是关键!),因此“HashMap”并不是真正的选择,因为我不想覆盖“CounterBag”的“equals”和“hashcode”(我需要它们两个)。 集合需要按“Period”排序(按结束日期)。 “Periods”具有灵活的持续时间,对于执行查找的部分未知。
我想知道是否有Java标准API或某些开源库中的现成集合可以帮助我解决这个问题?一种按日期排序的排序集合或排序映射,使得实现按日期进行高效查找成为可能。 按日期查找将返回一个“CounterBag”,其中包含日期所在的“Period”。感谢您的建议。