JAVA 判断一系列区间值有没有重叠

判断一系列区间值比喻 0-20 10-8 21-100 ...等等 这些区间有没有重叠的方法:

java 复制代码
/**
 * @Author  Minco
 * @Date 15:44 2024-07-01
 * @Description  区间范围
 *//***/
public class Interval implements Comparable<Interval> {

    double start;
    double end;

    public Interval(double start, double end) {
        this.start = start;
        this.end = end;
    }

    public double getStart() {
        return start;
    }

    public double getEnd() {
        return end;
    }

    @Override
    public int compareTo(Interval other) {
        return Double.compare(this.getStart(), other.getStart());
    }

}
java 复制代码
import java.util.List;

public class IntervalOverlapChecker {


    public static boolean hasOverlap(List<Interval> intervals) {
        if (intervals == null || intervals.size() < 2) {
            return false;
        }

        // 首先对区间按起始位置进行排序
        intervals.sort(null);

        for (int i = 1; i < intervals.size(); i++) {
            // 如果当前区间的起始位置小于前一个区间的结束位置,则说明有重叠
            if (intervals.get(i).getStart() < intervals.get(i - 1).getEnd()) {
                return true;
            }
        }

        return false;
    }
}

使用:

java 复制代码
    List<SpokeSetmx> mxList=spokeSet.getMxList();
    List<Interval> intervals = new ArrayList<>(); //校验最小、最大
    for(SpokeSetmx mx:mxList){
            mx.setTenantId(tenantId);
            intervals.add(new Interval(mx.getMoney1(), mx.getMoney2()));
    }
    if(hasOverlap(intervals)) throw new BusExcep("消费范围阶梯存在重叠");
相关推荐
Jtti14 分钟前
Debian环境下Java应用无法启动的原因有哪些
java·python·debian
上线之叁17 分钟前
小迪安全-tp框架反序列化,利用链,rce执行,文件删除
java·开发语言
躺着听Jay19 分钟前
QCustomPlot-相关优化
java·qt·算法
扫地僧00930 分钟前
【中大厂面试题】腾讯 后端 校招 最新面试题
java·数据结构·后端·算法·面试·排序算法
东方芷兰1 小时前
JavaWeb 课堂笔记 —— 08 请求响应
xml·java·笔记·spring·tomcat·html·idea
菜鸟起航ing1 小时前
【Java面试系列】Spring Cloud微服务架构中的分布式事务实现与性能优化详解 - 3-5年Java开发必备知识
java·spring cloud·微服务·面试·分布式事务
Java手札1 小时前
为什么选择Redis?解析核心使用场景与性能优化技巧
java·spring boot·redis·intellij-idea
龙大大L2 小时前
第五章:5.1 ESP32物联网应用 - MQTT协议深度教程
java·单片机·struts·apache
极客先躯3 小时前
高级java每日一道面试题-2025年4月01日-微服务篇[Nacos篇]-Nacos集群的数据一致性是如何保证的?
java·开发语言·微服务
麓殇⊙3 小时前
springboot--页面的国际化
java·spring boot·后端