如何从 HashMap 中删除过期元素并同时添加更多元素 - Java Timer、TimerTask 和 futures() - 完整示例

已发表: 2021-04-02
如何从 HashMap 中删除过期元素并同时添加更多元素 - Java Timer、TimerTask 和 futures()

Hashmap、ArrayList、Static Map、Vectors等是最常用的Java集合框架元素。 您可以根据需要使用无数种场景。

这个例子是非常有趣的Java Example。 我们将对单个 HashMap() 执行以下操作。

  • 创建 crunchifyMap 对象
  • 每秒继续向 Map 添加元素,过期时间设置为5 seconds
  • 每秒Check一次过期元素,如缓存delete from map if expired
  • 5 秒后,您将always same sizealways 5 elements ,因为您每秒添加和删除过期元素

此外,如果您有below questions ,那么您来对地方了:

  • 什么是被动过期地图示例
  • 具有超时元素的并发映射
  • Java 缓存映射示例
  • Java TimerTask 示例
  • Evictor – Java 并发映射示例

让我们开始吧:

第 1 点

  • 创建定时器元素crunchifyTimer
  • 安排指定的任务CrunchifyReminder()重复固定延迟执行,即 1 秒
  • 在计划任务中
    • add元素添加到 crunchifyMap
    • 从 crunchifyMap 检查过期元素并删除

第 2 点

  • addElement()操作期间
    • 我们为每个元素关联current time
  • crunchifyClearExipredElementsFromMap()操作期间
    • 我们正在使用元素的时间检查当前时间
    • 如果时间差超过 5 秒,则只需从 crunchifyMap 中删除元素

第 3 点

  • 在 Eclipse 控制台上添加和删除操作打印元素期间
  • 第一个添加的元素将在第一个被删除,依此类推
  • 请检查 Eclipse 控制台输出的结果

这是一个Java程序:

Eclipse 控制台输出:

只需运行上面的程序,您应该会看到如下结果。

如何从 HashMap 中删除过期元素并同时添加更多元素 - Java Timer、TimerTask 和 futures() - 控制台结果

如果您在 Java 程序上运行时遇到任何问题,请告诉我。