提问者:小点点

如何计算在给定时间内有多少类成员运行


我有一个名为running的类,它具有开始时间和结束时间:

public class Running {
    private double startTime;
        private double endTime;

    public Running(double startTime, double endTime) {
        this.startTime = startTime;
        this.endTime = endTime;
    }

}

在我的主课上:

    Running runningA = new Running(1, 10);
    Running runningB = new Running(5,9);
    Running runningC = new Running(4, 8);

我怎样才能以正确的方式计算出它们中的大多数在哪段时间之间运行?

例如:

在5到8之间,它们都在运行

在1到3之间只能运行一次


共1个答案

匿名用户

我不知道为什么running类将开始时间和结束时间保存为double而不是ints,但是还可以。

使用您的示例:

Running runningA = new Running(1, 10);
Running runningB = new Running(5, 9);
Running runningC = new Running(4, 8);

我们创建一个列表来保存running的3个实例。 然后我们执行以下操作:

>

  • 创建映射

    查看列表,找到最小开始时间和最大结束时间。

    在最小开始时间启动时间计数器。

    查看列表,查看哪些实例在其范围内具有时间计数器。 例如,第一个实例有一个1。 所以我们在地图里放了一个(时间计数器,1)。

    递增时间计数器,重复步骤4,直到最大结束时间。

    映射包含每次的答案。 遍历映射并总结哪些时间段有1个实例,哪些时间段有2个实例,依此类推。