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("消费范围阶梯存在重叠");
相关推荐
程序员小寒5 分钟前
JavaScript设计模式(六):职责链模式实现与应用
java·javascript·设计模式
关于不上作者榜就原神启动那件事6 分钟前
@Transactional事务失效总结
java·开发语言·jvm
jaysee-sjc7 分钟前
【项目三】用GUI编程实现局域网群聊软件
java·开发语言·算法·安全·intellij-idea
无名-CODING7 分钟前
Java 爬虫高级技术:反反爬策略与分布式爬虫实战
java·分布式·爬虫
jonyleek8 分钟前
JVS物联网应用中控制器的四大职责和设备接入全流程
java·struts·servlet·私有化部署
csdn2015_13 分钟前
java 将 List<Map<String,Object>> 类型里面的值转换为List<String>
java·windows·list
怀化纱厂球迷18 分钟前
android车载应用动画-仿窗帘式下拉显示!Android 实现跟手裁剪动画 + RecyclerView 列表展示
android·java
ayt00732 分钟前
Netty 4.2核心类解析:SingleThreadIoEventLoop的设计哲学与实现
java·网络
无名-CODING34 分钟前
Java 爬虫进阶:动态网页、多线程与 WebMagic 框架实战
java·爬虫·okhttp
weixin_7042660536 分钟前
Spring 注解驱动开发与 Spring Boot 核心知识点梳理
java·spring boot·spring