Java 1.8:使用分摊的O(1)部分遍历NavigableMap以查找以下条目?

问题描述 投票:0回答:1

我满足于有一个O(log n)的第一个操作来找到我的起点

NavigableMap<Double,MyThing> navlevel = new TreeMap<>();

但是在手写的C ++(或者我想用手工编写的Java)中,一旦我找到了一个指向MyThing的节点,我就可以在该节点上进行“下一步”操作,这将只分配几个指针操作。 (如果有正确的链接,则向右走,然后一直向左走;否则请转到您的父级,直到找到您来自父级左子节点的节点。)

    Map.Entry<Double,MyThing> entry =
        navthing.ceilingEntry( dSomeValue );

    while ( entry != null ) {

        MyThing level = entry.getValue();

        // Process and break on some condition.

        // vvvvvvvvv This I'm sure is O( log n ) and I want it to be faster!
        entry = navthing.higherEntry( entry.getKey() );
    }
java treemap
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.