如何在流条件下有效地打印具有时间跨度的字符串?

How to efficiently print strings with time span in a stream conditions?

假设我们得到一个数据结构清晰的流字符串输入:
content:arrive time

示例如下:

AAA : 12:00:00   
ABC : 12:00:01   
ABB : 12:00:02   
ABM : 12:00:11   

我们有一个程序来检查这个流输入,如果
1)此内容之前不存在,打印此内容;
2)如果此内容早于到达且时间跨度小于10秒,则打印空;
3)如果此内容早于到达且时间跨度超过10秒,则打印内容;

Hashtable(String, Date) 可以,我们可以在新的进来的时候更新日期。

我的问题是: 如果字符串数字很大并且无法存储在哈希表中怎么办?考虑到我们正在设计一个程序,运行 24*7 和 hashtable 变得越来越大。
我们还有其他办法可以解决这个问题吗?我们可以用多个服务器解决这个问题吗?

您可以使用 Hashtable(String -> Date) 和简单的 Queue([Date, String]),每次将新项目添加到哈希表时,也将其添加到队列中。

每隔几分钟从队列中弹出项目并将它们从哈希表中删除,直到日期不够旧(<10 秒)。

这样您就可以只保留最近几分钟的数据,哈希表和队列都不会增长太多。