包含将传递addEventToTimeline
的方法Event
。将element
添加到ArrayList
个事件时,应将其放在列表中的正确位置。事件中的元素应始终按时间顺序排列。
使用与我们昨天使用的类似的逻辑和代码来添加Event
正确的位置在列表中。 (Event
使用compareTo
进行比较。)
到目前为止,我的代码看起来像这样。我知道这是错的,但我不知道从哪里开始。
public void addEventToTimeline(Event a){
for(int i = 0; i <events.size(); i++){
if(a.compareTo(events.get(i))<0);
events.add(i+1, events.get(i));
events.set(i, a);
}
}
}
答案 0 :(得分:0)
您是否被迫使用ArrayList?我会用树来解决这个问题。以下是使用ArrayList解决方案应该做的事情:
我会为此使用更高级的数据结构。例如,如果你想要的只是min事件,那么每次使用heap
如果您需要全球订单,请使用BST,甚至更好的red black tree