可以通过比较两个时间区间的开始时间和结束时间,判断是否重叠。

假设有两个List变量list1和list2,分别存储了时间区间的字符串。

首先,我们需要将字符串转换为时间类型。可以使用SimpleDateFormat类来实现。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> list1 = List.of("09:00-10:00", "12:00-13:00");
        List<String> list2 = List.of("08:30-09:30", "11:00-12:30");

        boolean overlap = checkOverlap(list1, list2);
        System.out.println("Overlap: " + overlap);
    }

    public static boolean checkOverlap(List<String> list1, List<String> list2) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");

        for (String interval1 : list1) {
            String[] times1 = interval1.split("-");
            Date startTime1;
            Date endTime1;
            try {
                startTime1 = dateFormat.parse(times1[0]);
                endTime1 = dateFormat.parse(times1[1]);
            } catch (ParseException e) {
                e.printStackTrace();
                return false;
            }

            for (String interval2 : list2) {
                String[] times2 = interval2.split("-");
                Date startTime2;
                Date endTime2;
                try {
                    startTime2 = dateFormat.parse(times2[0]);
                    endTime2 = dateFormat.parse(times2[1]);
                } catch (ParseException e) {
                    e.printStackTrace();
                    return false;
                }

                if (startTime1.before(endTime2) && endTime1.after(startTime2)) {
                    return true; // 重叠
                }
            }
        }

        return false; // 不重叠
    }
}

在上述代码中,我们首先定义了两个时间区间的List,然后调用了checkOverlap方法来判断两个时间区间是否重叠。

在checkOverlap方法中,我们首先创建了一个SimpleDateFormat对象,用于将字符串转换为时间类型。

然后,我们使用嵌套的循环来遍历两个时间区间的所有组合。对于每个时间区间,我们首先将其拆分为开始时间和结束时间,并将其转换为Date类型。

然后,我们将两个时间区间的开始时间和结束时间进行比较,如果存在重叠部分,则返回true;否则,继续比较下一个时间区间。

最后,如果没有找到重叠的时间区间,则返回false。

运行上述代码,将输出"Overlap: true",表示两个时间区间存在重叠

java中两个listString 里面都存了每个string存开始时间-结束时间时间为hhmm的时间格式比较两个list中的时间区间是否重叠

原文地址: https://www.cveoy.top/t/topic/hC6H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录