Java 确定两个区间范围是否有交集

   @Test
   public void test01() {
 
        Double[] a = new Double[]{90D, Double.MAX_VALUE};
        Double[] b = new Double[]{10D, 90D};
        a = new Double[]{0D, 10D};
 
        boolean overlap = isIntervalOverlap(a, b);
        if (overlap) {
            System.out.println("相交");
        } else {
            System.out.println("不相交");
        }
    }
 
    private static boolean isIntervalOverlap(Double[] inrA, Double[] inrB) {
        if (inrA.length < 2 || inrB.length < 2) {
            throw new RuntimeException("区间范围必须包含两个值以上");
        }
        Arrays.sort(inrA);
        Arrays.sort(inrB);
 
        // (StartA <= EndB) and (EndA >= StartB)
        if (inrA[0] < inrB[inrB.length - 1] && inrA[inrA.length - 1] > inrB[0]) {
            return true;
        } else {
            return false;
        }
    }

 

posted @ 2022-06-02 09:14  锐洋智能  阅读(553)  评论(0编辑  收藏  举报