Java:来自 TreeMap 条目的迭代器?

标签 java containers treemap

在 Java 中,TreeMap<K,V>使用 RB 树存储条目,允许使用 map.entrySet().iterator() 进行有序迭代, 同时保证在 log(N) 时间内插入和查找。

TreeMap 还提供了查找给定键的上限和下限的方法:map.floorEntry(k) , map.ceilingEntry() , map.lowerEntry(k)map.higherEntry() .但是,这些的返回值是 Map.Entry<K,V>实例并且不会直接允许一个人访问相邻的条目。我想访问一个假设条目的潜在邻居,因为它有 key 。

有没有办法从 TreeMap 条目获取迭代器或做我想做的事情?

更习惯于 C++ 的 std::map<K,V>类(class),我在这里不知所措......

注意 我对使用 java.util 以外的容器库的解决方案持开放态度,只要它有一个排序的映射容器,并有一些合理的时间复杂度保证。

最佳答案

您可以拿回返回的 key Map.Entry<K, V>作为 tailMap(K fromKey) 中的参数或 headMap(K toKey) , 并迭代结果。

关于Java:来自 TreeMap 条目的迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624593/

相关文章:

Java时区错误

docker - Docker,如何在Container的OS Ubuntu中添加文件夹

c++ - 如何使用标准 STL 算法从 istream 填充 std::vector

java - 合并两个 TreeMap,同时跳过 Java 中的第一个条目

java - 如何传递整个 map

java - Eclipse 中缺少 JPA 工具菜单

java - 如何在不指定父文件夹/ref 的情况下迭代 Datasnapshot

java - Spring Boot 验证不适用于所有 bean

html - 表不遵守容器高度

java - 当键是字符串时如何在 Java 中创建范围映射