在特定时间后仅更新阵列中特定项目的最佳方法是什么?

时间:2019-06-02 05:16:04

标签: computer-science abstraction

我问的最好的主意是在一定时间后更新一组数据。

我有一个对象数组,每个对象都有自己的时间戳和其他变量。例如,在5分钟内,必须自动更改其中一个对象的变量,而对于另一个项目,则可能需要8分钟,以此类推。

我当前的解决方案是使用一个计时器,该计时器每15秒运行一次函数,以将Array中的每个对象的时间戳与当前时间戳进行比较,但这效率不高,尤其是因为数组的大小会增加。

我不在乎编程细节,但是如何实现这一点的抽象思想是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用HashMap将对象时间戳作为键来存储对象。这样可以使您以O(1)时间复杂度访问对象。

答案 1 :(得分:0)

使用优先级队列。每个项目的优先级是下一次更新到期的时钟时间。现在是从队列中删除下一个项目的O(log(N))时间,到了将其下一个到期时间重新插入该项目的时间为O(log(N))。