Java集合--09TreeMap

知识点:存储结构、同步问题、遍历、红黑树

TreeMap基础

public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable {}

(01)是一个有序的key-value集合,它是通过红黑树实现的。
(02)继承于AbstractMap,所以它是一个Map,即一个key-value集合。
(03)实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。
(04)实现了Cloneable接口,意味着它能被克隆
(05)实现了java.io.Serializable接口,意味着它支持序列化

备注:TreeMap基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
TreeMap的基本操作 containsKey、get、put 和 remove 的时间复杂度是 log(n) 。另外,TreeMap是非线程安全的。 它的iterator 方法返回的迭代器是fail-fastl的。

firstEntry() 和 getFirstEntry() 都是用于获取第一个节点。
但是,firstEntry() 是对外接口; getFirstEntry() 是内部接口。而且,firstEntry() 是通过 getFirstEntry() 来实现的。那为什么外界不能直接调用 getFirstEntry(),而需要多此一举的调用 firstEntry() 呢?
这么做的目的是:防止用户修改返回的Entry。getFirstEntry()返回的Entry是可以被修改的,但是经过firstEntry()返回的Entry不能被修改,只可以读取Entry的key值和value值。

 顺序遍历和逆序遍历

keyIterator()的作用是返回顺序的KEY的集合,
descendingKeyIterator()的作用是返回逆序的KEY的集合

猜你喜欢

转载自blog.csdn.net/u013263066/article/details/86748221