编程语言
首页 > 编程语言> > java – TreeMap的lastKey查找时间

java – TreeMap的lastKey查找时间

作者:互联网

SortedMap接口的TreeMap.lastKey()部分的时间复杂度是多少?

oracle文档提到了有关TreeMaps的内容:

This implementation provides guaranteed log(n) time cost for the containsKey, get, put and remove operations.

解决方法:

根据Open JDK中的实现,它是O(log N):

public K lastKey() {
    return key(getLastEntry());
}
final Entry<K,V> getLastEntry() {
    Entry<K,V> p = root;
    if (p != null)
        while (p.right != null)
            p = p.right;
    return p;
}

lastKey()调用getLastEntry(),它继续采用正确的子树,直到没有其他节点为止.由于实现将树维持在平衡状态,因此迭代次数为O(log N).

标签:java,map,treemap,sortedmap
来源: https://codeday.me/bug/20190528/1172046.html