Java中C++ map.lower_bound的等价物

Bor*_*jev 8 c++ java 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">
Run Code Online (Sandbox Code Playgroud)

很酷的是,C++地图基于红黑树,因此查询是对数(O(log n)).

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

非常感谢您的帮助.

Nik*_*nić 7

我想你正在寻找TreeMap.看看ceilingKey/Entry方法.

  • 我认为 `ceilingEntry` 方法与 `std::lower_bound` 完全相同,而 `lowerEntry` 非常相似但仍然不同。 (2认同)