将值插入阵列列表之类的间隔Java



我有一组代表我拥有的值的范围。
添加新范围时,可能会删除范围之间的间隔。

示例:
我有范围[10, 50][70, 100][150, 200],其中数据保存在两个列表中:
start_list(10,70,150)&end_list(50,100,200)。

这是我可能会获得预期输出的4个不同可能的输入:

  1. [20, 170]结果应为[10, 200],因为添加了所有间隔。
  2. [5, 170]结果应为[5, 200],因为添加了所有间隔。
  3. [20, 220]结果应为[10, 220],因为添加了所有间隔。
  4. [1, 120]结果应为[1, 120][150, 200],因为添加了一些间隔。

但是,我似乎无法获得这种方法。谁能帮我解决这个问题?我不能使条件正确。

您可以使用guava解决此问题。

RangeSet<Integer> r = TreeRangeSet.create();
r.add(Range.closed(10, 50));
r.add(Range.closed(70, 100));
r.add(Range.closed(150, 200));
// adds
r.add(Range.closed(20, 170));
//      r.add(Range.closed(5, 170));
//      r.add(Range.closed(20, 220));
//      r.add(Range.closed(1, 120));
System.out.println(r);

最新更新