我正在寻找一种基于Java的数据结构,该数据结构管理收集时间/基于日期的间隔(最好是Joda时间),以便对于添加到集合中的每个间隔,数据结构返回所添加的间隔的子间隔,该子间隔尚未在数据结构中并合并所述间隔。
现在,根据集合论,这将很容易,即返回值将“被添加”存在和由此产生的结构将是“存在的”联合被添加“。当然,现在我可以使用一组离散点来模拟日期/时间间隔,但这似乎不太有效。
因此,我正在寻找一个现有的数据结构,它已经使用间隔提供了这些开箱即用的操作。
为了澄清,这里是一个例子,我正在寻找什么。
//案例0 //现有*返回值-空- //结果*案件1/现有*/添加*返回值*/结果**加入*返回值*/结果**/案例3/现有** //结果**返回值*/结果**案件5/现有** //返回值*/结果*案件6*/现有** //添加*/返回值*/结果**/案件7/现有的* //*/结果*案件8/现有** //添加*返回值* //结果**/.//
发布于 2015-10-12 09:16:51
这方面没有现成的结构,至少在stdlib或公域中没有,但是您可以相对容易地使用NavigableMap (TreeMap)实现一些东西。特别是,像floorEntry()/ceilingEntry()和subMap()这样的方法在这方面应该是有用的。
在我们的应用程序中,我们有一个范围聚合器类,它计算范围的分配和。也就是说,基本输入是一组(可能是重叠的)日期范围,并附加数字。输出是对应的不重叠范围的集合,输入范围重叠的输入的数字之和。它少于100行代码,并使用TreeMap。
https://stackoverflow.com/questions/33074578
复制相似问题