gpt4 book ai didi

java - 用于处理范围列表的库

转载 作者:行者123 更新时间:2023-12-01 18:24:37 26 4
gpt4 key购买 nike

我必须在 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]

我尝试使用 Google Guava Range classList但是将新的时间戳范围合并在一起会变得异常复杂。

使用新的 LongStream从 Java 8 而不是 Range 类对我没有帮助。

我认为Interval Tree将是一个很好的数据结构来有效地处理合并,但我发现没有库可以实现这一点。

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

最佳答案

从你想要实现的目标来看,既然你提到使用Guava的Range,Guava已经有了你想要的:a RangeSet .

此接口(interface)的 javadoc 指定:

[...]Implementations that choose to support the add(Range) operation are required to ignore empty ranges and coalesce connected ranges.

它是一个接口(interface);您可能想使用TreeRangeSet为了您的目的:

// for whatever type C...
final RangeSet<C> rangeSet = TreeRangeSet.create();

关于java - 用于处理范围列表的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com