java - 我可以使用哪个 Java 集合?

标签 java collections dictionary

我需要存储一组由时间段(开始、结束)定义的数据结构以及该时间段的计数器,用于保存一些复杂的计算结果。数据结构的简化定义如下:

public class CounterBag {
    private Period period;   // collection key
    private Counter counter;
    // accessors
    // ...
}

期间很简单:

public class Period {
    public DateTime start;
    public DateTime end;
    // accessors
    // ...
}

我需要一个集合来保存由不同Periods定义的CounterBag对象。 该集合需要通过 long timeInMillis 提供有效的查找(这里是问题!),因此 HashMap 并不是真正的选择,因为我不想覆盖 equalsCounterBaghashcode (我需要它们)。该集合需要按Period(按结束日期)排序。 周期具有灵活的持续时间,执行查找的部分不知道该持续时间。

我想知道java标准API或某些开源库中是否有开箱即用的集合可以帮助我解决这个问题?某种排序集或排序映射能够实现按日期高效查找。按日期查找将返回一个 CounterBag,其中包含日期所在的 Period

感谢您的建议。

最佳答案

您可以使用 TreeMap 作为其排序集合(这使得查找高效)

如果您的经期有规律的间隔(这是最简单的形式),您不需要这样的集合。您可以为每个间隔设置一个计数器。例如一个int[]

关于java - 我可以使用哪个 Java 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10572201/

相关文章:

java - Java内存溢出

java - 如何杀死等待Java中阻塞函数调用的线程?

collections - Zorba 系列 : a simple directory of xml files

Python:如果字符串以列表中的字符串开头

python - 映射python字典中的值

Java - 迭代 HashMap 替换 ArrayList

java - java中有没有一种方法可以根据文件名对文件夹中的特定类型的文件进行分组并单独添加它们?

java - TableViewer 如何使用编辑支持设置单元格的插入符位置并删除 FULL_SELECTION

c# - 在c#中将代码列表集合写入字符串

VB6 集合删除不会触发 Class_Terminate