Java:来自 TreeMap 条目的迭代器?
Java: iterator from TreeMap entry?
在Java中,TreeMap<K,V>
使用RB树存储条目,允许使用map.entrySet().iterator()
进行有序迭代,同时保证在log(N)时间内插入和查找.
TreeMap 还提供了查找给定键的上限和下限的方法:map.floorEntry(k)
、map.ceilingEntry()
、map.lowerEntry(k)
和 map.higherEntry()
。但是,这些的 return 值是一个 Map.Entry<K,V>
实例,不会直接允许访问相邻条目。我想访问一个假设条目的潜在邻居,因为它有密钥。
有没有办法从 TreeMap 条目获取迭代器或做我想做的事情?
比较习惯C++的std::map<K,V>
class,我在这里不知所措...
注意 我愿意接受使用 java.util 以外的容器库的解决方案,只要它有一个具有合理时间复杂度的排序映射容器保证。
可以将返回的Map.Entry<K, V>
的key作为tailMap(K fromKey)
或headMap(K toKey)
的参数,对结果进行迭代
在Java中,TreeMap<K,V>
使用RB树存储条目,允许使用map.entrySet().iterator()
进行有序迭代,同时保证在log(N)时间内插入和查找.
TreeMap 还提供了查找给定键的上限和下限的方法:map.floorEntry(k)
、map.ceilingEntry()
、map.lowerEntry(k)
和 map.higherEntry()
。但是,这些的 return 值是一个 Map.Entry<K,V>
实例,不会直接允许访问相邻条目。我想访问一个假设条目的潜在邻居,因为它有密钥。
有没有办法从 TreeMap 条目获取迭代器或做我想做的事情?
比较习惯C++的std::map<K,V>
class,我在这里不知所措...
注意 我愿意接受使用 java.util 以外的容器库的解决方案,只要它有一个具有合理时间复杂度的排序映射容器保证。
可以将返回的Map.Entry<K, V>
的key作为tailMap(K fromKey)
或headMap(K toKey)
的参数,对结果进行迭代