在Java中,ISelectionService
使用RB树来存储条目,允许使用TreeMap<K,V>
进行有序迭代,同时保证在log(N)时间内插入和查找。
TreeMap还提供了查找给定键的上限和下限的方法:map.entrySet().iterator()
,map.floorEntry(k)
,map.ceilingEntry()
和map.lowerEntry(k)
。但是,这些实例的返回值是map.higherEntry()
实例,并且不会直接允许访问相邻条目。考虑到它的关键,我想访问一个假想条目的潜在邻居。
有没有办法从TreeMap条目中获取迭代器或者做我想做的事情?
更习惯于C ++的Map.Entry<K,V>
课程,我在这里不知所措......
注意我使用java.util以外的容器库开放解决方案,只要它有一个具有合理时间复杂度保证的有序地图容器。< / p>
答案 0 :(得分:2)
您可以将返回的-- Two tables, a post can have many likes
CREATE TABLE post (postId INT);
CREATE TABLE `like` (postId INT);
-- Insert some posts and likes for some of those posts
INSERT INTO post VALUES (1),(2),(3),(4),(5),(6),(7),(8);
INSERT INTO `like` VALUES (1),(1),(3),(3),(5),(6),(7),(8);
-- Take a look at the data
SELECT * FROM post;
SELECT * FROM `like`;
-- Count the number of likes per post
SELECT p.postId, COUNT(l.postId) likes
FROM post p
LEFT JOIN `like` l ON p.postId = l.postId
GROUP BY p.postId
HAVING COUNT(l.postId) > 0; -- This removed the posts with no likes
的密钥作为Map.Entry<K, V>
或tailMap(K fromKey)
中的参数,并迭代结果。