java - 有没有等同于 Redis 排序集(zset)的 Java 数据结构

标签 java data-structures set ttl

Redis 有一种称为有序集的数据结构。

接口(interface)大致类似于 SortedMap,但按值而不是键排序。我几乎可以使用 SortedSet,但它们似乎采用静态排序值。

是否有类似概念的规范 Java 实现?

我的直接用例是在每个元素上构建一个带有 TTL 的集合。 map 的值(value)将是过期时间,我会定期修剪过期的元素。我还可以定期增加到期时间。

最佳答案

所以...几件事。

首先,决定您将更多地使用哪种访问权限。如果您将执行更多的 HashMap 操作(获取、放置)而不是访问排序列表,那么您最好只使用 HashMap 并在您想要修剪集合时对值进行排序。

至于修剪集合,听起来您只想删除时间小于某个时间戳的值,而不是删除最早的 n 项。如果是这种情况,那么您最好只根据值是否满足条件来过滤 HashMap。这可能比尝试先对列表进行排序然后删除旧条目要快。

关于java - 有没有等同于 Redis 排序集(zset)的 Java 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23378906/

相关文章:

java - Hibernate 外键问题

c++ - c++(98) STL set 是否可以散列一个 int 数组,然后检查该数组是否存在于集合中

java - Kafka的分区选择算法

java - 使用java在酱汁实验室上同时运行不同功能的测试

java - 给定一个字符串,如果字符串中第一个 "x"实例后紧跟着另一个 "x",则返回 true

java - 查找数组中元素的最小值、最大值和平均值

algorithm - 了解归并排序算法

javascript - 如何用包含 TypeScript 中较新对象的数组替换对象数组?

java - 递归搜索二叉树

python - 在 Python 中检索特定的集合元素