java - 像间隔 java 一样将元素插入到 ArrayList

标签 java arrays loops for-loop arraylist

第一个例子:我有范围

[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/

相关文章:

java - Short|quick int 值比较

java - 带有字符 g.draw java 的轮廓形状

javascript - 将数组拆分为无序列表?

php - array_map 并将字符串附加到数组的元素

c - 对带有数组和嵌套 For 循环的程序中特定语句的作用感到困惑

r - 如何有效地从数字向量中采样

java - 如何检查我的程序是否有 Java 更新

java - 负前瞻正则表达式直到数字但没有连续的 0

c - 在数组中输入随机数时出错

c++ - 打印一个 map 的值,它有两个字符串作为键和 vector 作为值