【发布时间】:2019-03-01 14:46:12
【问题描述】:
我有一个列表,我想通过设备字符串属性检测列表中重叠的任务。所以,任务会是这样的:
public class Mission {
private String id;
private String device;
private long startTime;
private long endTime;
}
我收到一个列表并希望返回相同的列表,其中子任务属性设置为“重叠”,如果:
- 同一设备在其范围内执行了另一个任务(timestampstart 到 timestampend)。
回想一下,我需要标记所有重叠的任务。当我在列表中找到它们时,标记当前的(如果匹配)和在列表中遇到的。
我想用尽可能少的成本来做这件事。非昂贵的操作。
【问题讨论】:
-
你为什么用
List<Object>而不是List<Mission>?当id相等时,两个Mission是否相等?列表是否按例如排序?id?如果最后两个问题的答案是“是”,那么你可以在n * log(m)中实现你想要的。 -
@Turing85 我使用 List
。他们的身份永远不相等。我可以按时间戳对其进行排序(例如开始)。问题是如何在 Java 中正确实现它。 -
很可能,您必须覆盖
equals(...)(注意equals(...)和hashCode(...)之间存在合同)。 -
现在我们知道您想要什么了。我们不知道到目前为止您尝试或研究了什么。你的具体问题是什么?你在哪里卡住了?
标签: java algorithm sorting data-structures collections