我有一个名为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之间只能运行一次
我不知道为什么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个实例,依此类推。