向类似java的ArrayList插入值

向类似java的ArrayList插入值,java,arrays,sorting,insert,range,Java,Arrays,Sorting,Insert,Range,我有一组范围,表示我拥有的值。 添加新范围时,可能会删除范围之间的间隔 示例: 我有范围[10,50],[70100],[150200],其中数据保存在两个列表中: 开始列表(10,70,150)和结束列表(50,100,200) 以下是我可能从预期输出中获得的4种不同的可能输入: [20170]结果应该是[10200],因为已经添加了所有间隔 [5170]结果应该是[5200],因为所有间隔都已添加 [20220]结果应该是[10220],因为所有间隔都已添加 [1120]结果应该是[1120

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

示例:
我有范围
[10,50]
[70100]
[150200]
,其中数据保存在两个列表中:
开始列表
(10,70,150)和
结束列表
(50,100,200)

以下是我可能从预期输出中获得的4种不同的可能输入:

  • [20170]
    结果应该是
    [10200]
    ,因为已经添加了所有间隔
  • [5170]
    结果应该是
    [5200]
    ,因为所有间隔都已添加
  • [20220]
    结果应该是
    [10220]
    ,因为所有间隔都已添加
  • [1120]
    结果应该是
    [1120]
    [150200]
    ,因为已经添加了一些间隔
    然而,我似乎无法让这种方法发挥作用。有人能帮我解决这个问题吗?我不能使条件正确。

    你可以用番石榴来解决这个问题

    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);
    
    RangeSet r=TreeRangeSet.create();
    r、 增加(范围。关闭(10,50));
    r、 增加(关闭范围(70100));
    r、 增加(关闭范围(150200));
    //加上
    r、 添加(范围关闭(20170));
    //r.add(范围闭合(5170));
    //r.add(范围闭合(20220));
    //r.add(范围闭合(1120));
    系统输出println(r);
    
    您能分享代码吗?同意@Mick助记符。请分享代码,以便我们提供帮助