TreeMap是采用树来进行实现的,因此在保存元素的过程中,会按照元素的键值进行排序存储。因此,与HashMap相比,TreeMap中存储的元素是有序的,且TreeMap能够实现快速检索。
创建一个TreeMap的方法有:
1.public TreeMap ()
该方法为无参构造方法,用于构造一个空的TreeMap,该TreeMap中的元素默认根据键的自然排序进行排序,且要求存入元素的键值必须是可以相互比较的。
说明:
与TreeSet类似,TreeMap要求存入元素的键两两之间是可以相互比较的,如果存入元素的键是自定义类型,那么该类必须实现Comparable接口或者在创建TreeMap时设定一个比较依据,如下面的这个构造方法。
2.public TreeMap (Comparator<? super E> comparator)
该方法可以根据指定比较依据comparator来构造一个空的TreeMap。
3.public TreeMap(SortedMap<K,? extends V> m)
该方法可以构造一个包含相同映射并使用与指定排序映射相同顺序的新TreeMap。(www.daowen.com)
4.public TreeMap(Map<? extends K,? extends V> m)
该方法用于构造一个包含指定映射m中的所有键值对,且这些键值对会按照键的自然排序按序存入TreeMap中。
【例9.10】编写一个存储Map.Entry<String, Integer>的TreeMap,并对其进行一些简单操作。
运行上述代码,程序运行结果如图9.14所示。
图9.14 程序运行结果
从图9.14的运行结果可以看出,TreeMap中的元素是按照键的升序进行排序的。另外需要说明的是,使用put()方法向Map中添加新的键值对时,若指定的键(key)在Map中不存在,则表示这个键没有对应的值,put()方法返回null并把这个key和指定的键值(value)添加到Map中;若指定的键(key)在Map中存在,则put()方法返回Map中这个键对应的值(替换前的值),并把这个键所对应的值替换成指定的新值。所以输出结果中“lisi”的值是22,而不是20。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。