第一个例子:我有范围
[10, 30] [80, 100] [150, 200]
我必须插入例如[90, 120]
。插入后,结果范围将是:
[10, 30] [80, 120] [150, 200]
发生这种情况是因为范围 [100, 120]
不在原始范围内,因此 100 会增加到 120,但不会添加 90,因为它在 80 到 120 的范围内。
同样,如果我将 [50, 90]
添加到原始范围,则结果范围将为
[10, 30] [50, 100] [150, 200]
这一次,下限减少到 50,扩大了下限的范围,但 90 被忽略,因为它已经在范围 [80, 100]
内。我正在尝试创建一个类来代表这个问题。
目前,我将起始数字放入 ArrayListStart [10, 80, 150]
中,将结束数字放入 ArrayListEnd [30, 100, 200]
中,然后循环他们。我比较它是否小于最小的数字等。
但是,我似乎无法让这种方法发挥作用。谁能帮我解决这个问题吗?
最佳答案
查看 Guava Range 类和 RangeSet 的实现界面。
Implementations that choose to support the add(Range) operation are required to ignore empty ranges and coalesce connected ranges.
关于java - 像间隔 java 一样将元素插入到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901117/