Java 用于处理范围列表的库

Java 用于处理范围列表的库,java,numbers,range,guava,date-range,Java,Numbers,Range,Guava,Date Range,我必须在Java 8应用程序中处理时间戳列表(Long): 如果用户添加了新范围,则应将其与其他现有范围合并,如以下伪代码所示: rangeList = [100, 200], [300, 400], [500, 600], [700, 800] newRangeList = rangeList.add([150, 550]) println(newRangeList) // Expected output: [100, 600], [700, 800] 我试着使用的列表,但将新的时

我必须在Java 8应用程序中处理时间戳列表(
Long
):

如果用户添加了新范围,则应将其与其他现有范围合并,如以下伪代码所示:

rangeList = [100, 200], [300, 400], [500, 600], [700, 800]
newRangeList = rangeList.add([150, 550])
println(newRangeList)      // Expected output: [100, 600], [700, 800]
我试着使用的
列表
,但将新的时间戳范围合并在一起会变得异常复杂

使用Java8中的新内容而不是Range类对我没有帮助

我认为an是一个很好的数据结构,可以有效地处理合并,但我发现没有实现此功能的库


是否有一个用于处理数字范围和合并的库?

从您想要实现的目标开始,既然您提到使用番石榴的范围,番石榴已经有了您想要的:a

此接口的javadoc指定:

[…]选择支持添加(范围)操作的实现需要忽略空范围和合并连接的范围

它是一个接口;您可能希望使用一个用于您的目的:

// for whatever type C...
final RangeSet<C> rangeSet = TreeRangeSet.create();
//对于任何类型的C。。。
最终RangeSet RangeSet=TreeRangeSet.create();

从您想要实现的目标,而且既然您提到使用番石榴系列,番石榴已经有了您想要的:a

此接口的javadoc指定:

[…]选择支持添加(范围)操作的实现需要忽略空范围和合并连接的范围

它是一个接口;您可能希望使用一个用于您的目的:

// for whatever type C...
final RangeSet<C> rangeSet = TreeRangeSet.create();
//对于任何类型的C。。。
最终RangeSet RangeSet=TreeRangeSet.create();