【发布时间】:2016-02-25 10:25:27
【问题描述】:
在 Java 中,TreeMap<K,V> 使用 RB-tree 来存储条目,允许使用 map.entrySet().iterator() 进行按序迭代,同时保证在 log(N) 时间内插入和查找。
TreeMap 还提供了查找给定键的上限和下限的方法:map.floorEntry(k)、map.ceilingEntry()、map.lowerEntry(k) 和 map.higherEntry()。但是,它们的返回值是一个 Map.Entry<K,V> 实例,并且不会直接允许访问相邻条目。我想访问一个假设条目的潜在邻居,因为它的密钥。
有没有办法从 TreeMap 条目中获取迭代器或做我想做的事情?
比较习惯了C++的std::map<K,V>类,我这里有点茫然……
注意我愿意接受使用除 java.util 之外的容器库的解决方案,只要它具有具有合理时间复杂度保证的排序地图容器。
【问题讨论】:
标签: java containers treemap