@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;
}
}