Find number range intersection

前端 未结 5 1343
别那么骄傲
别那么骄傲 2020-12-10 05:43

What is the best way to find out whether two number ranges intersect?

My number range is 3023-7430, now I want to test which of the following number

5条回答
  •  佛祖请我去吃肉
    2020-12-10 06:24

    I would make a Range class and give it a method boolean intersects(Range) . Then you can do a

    foreach(Range r : rangeset) { if (range.intersects(r)) res.add(r) }
    

    or, if you use some Java 8 style functional programming for clarity:

    rangeset.stream().filter(range::intersects).collect(Collectors.toSet())
    

    The intersection itself is something like

    this.start <= other.end && this.end >= other.start
    

提交回复
热议问题