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

What is the best way to update only specific items in an array after certain times?

我问的是在特定时间后更新一组数据的最佳想法是什么。

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

我目前的解决方案是有一个定时器,它每 15 秒运行一个函数来将数组中 每个 对象的时间戳与当前时间戳进行比较,但这不能高效,尤其是随着数组大小的增长。

我不关心编程细节,但实现它的抽象思想是什么?

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

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