java - NavigableMap 与 SortedMap?

标签 java sorting dictionary

有什么理由使用SortedMap而不是 NavigableMap ,除了JVM版本? (NavigableMap 从 1.6 开始才出现;SortedMap 从 1.2 开始出现)

我正在尝试找到具有最大键的值,例如键 <= 引用键 K0。我似乎无法弄清楚如何使用 SortedMap 来做到这一点(如果它是严格的 <,那么我会调用 headMap() 然后 lastKey () 然后是 get()),但是 NavigableMap.floorEntry()似乎正是我所需要的。


澄清:仅作为示例,我正在处理具有不同行为模型的稀疏版本号范围。键可能是 [0, 2, 5],因此版本号 0 和 1 由键 #0 处的值处理,版本号 2-4 由键 #2 处的值处理,版本号 >= 5由键 #5 处的值处理。

最佳答案

就个人而言,我非常相信使用最不具体的界面来为您提供所需的内容。这使您的意图更清晰,对您可能的实现的限制更少。

大多数开发人员都希望排序集合用于迭代目的,也许是为了提高随机访问性能。我见过很少需要关闭元素的情况。

如果您需要该功能,请继续。我认为TreeMap实际上实现了NavigableMap。但是当你不需要它的时候,为什么要限制自己呢?

关于java - NavigableMap 与 SortedMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740167/

相关文章:

python - 多索引 Pandas 数据框到字典

java - 在 Java 中转换 boolean 数组?

java - 新创建的客户端是否知道 hornetq 中的旧消息?

python - 对嵌套元组列表进行排序

database - 频繁变化的数据分页

python - 如何从 pyspark 中的 RDD 中获取不同的键作为列表?

java - 设置图标图像 JFrame

java - 哪个是适用于 Android 的最佳线平滑算法

bash - 对包含行分隔符的文件进行排序

Java 设置值从 Map 到 Set