我问的最好的主意是在一定时间后更新一组数据。
我有一个对象数组,每个对象都有自己的时间戳和其他变量。例如,在5分钟内,必须自动更改其中一个对象的变量,而对于另一个项目,则可能需要8分钟,以此类推。
我当前的解决方案是使用一个计时器,该计时器每15秒运行一次函数,以将Array中的每个对象的时间戳与当前时间戳进行比较,但这效率不高,尤其是因为数组的大小会增加。
我不在乎编程细节,但是如何实现这一点的抽象思想是什么?
答案 0 :(得分:0)
您可以使用HashMap将对象时间戳作为键来存储对象。这样可以使您以O(1)时间复杂度访问对象。
答案 1 :(得分:0)
使用优先级队列。每个项目的优先级是下一次更新到期的时钟时间。现在是从队列中删除下一个项目的O(log(N))时间,到了将其下一个到期时间重新插入该项目的时间为O(log(N))。