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

Sha*_*cko 5 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>实例,并且不会直接允许访问相邻条目.考虑到它的关键,我想访问一个假想条目的潜在邻居.

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

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

注意我可以使用除java.util之外的容器库来使用解决方案,只要它具有带有一些合理时间复杂度保证的有序映射容器即可.

小智 3

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