java - 等同于 Java 中的 C++ map.lower_bound

标签 java c++ map treemap

我的问题很基础,但我自己找不到解决方案。

我习惯用 C++ 编写算法。在那里我经常使用 std::map 结构,以及它提供的所有辅助方法。

此方法将迭代器返回到映射的第一个元素,其键 >= 到作为参数给定的键。示例:

map<int, string> m;
// m = { 4 => "foo", 6 => "bar", 10 => "abracadabra" }
m.lower_bound(2); // returns iterator pointing to <4, "foo">
m.lower_bound(4); // returns iterator pointing to <4, "foo">
m.lower_bound(5); // returns iterator pointing to <6, "bar">

很酷的是 C++ 映射基于红黑树,因此查询是对数的 (O(log n))。

现在我需要用Java实现某种算法。我需要与我刚才描述的类似的功能。我知道我可以使用在有序树中实现的 TreeMap。但是,我似乎没有找到与 lower_bound 方法等效的方法。有这样的吗?

非常感谢您的帮助。

最佳答案

我猜您正在寻找 TreeMap .查看 ceilingKey/Entry 方法。

关于java - 等同于 Java 中的 C++ map.lower_bound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9598710/

相关文章:

function - 一些编程语言如何区分函数和函数指针?

java - 使用 pom.xml 属性填充环境属性文件

c++ - 显示链表时倒序

c++ - 将JNI代码移植到java并理解jdouble * 用法

php - 如何使用 Google Maps API 根据距离进行搜索?

map - 戈朗 : traverse arbitrary map in sorted key order

java - BukkitRunnable 的返回值

java - 使用 JCE/JCA 从主 key 派生 secret

java - 关于检查字符串中某些字符的 stringChecker 的想法?

具有 const 函数的 C++ 线程安全