hashmap和treemap
来源:互联网 发布:zayn malik知乎 编辑:程序博客网 时间:2024/04/28 10:10
hashmap比较熟悉了,在这里有讲解。
treemap是基于红黑树实现的。【在阿里巴巴面试的时候就被问过了红黑树,结果到现在还是不会。。总结一下,在这里】
下面着重介绍一下treemap。
treemap没有调优选项,因为该树总处于平衡状态。
treemap:适用于按自然顺序或自定义顺序遍历键(key)。
treemap的构造方法有一个是需要传入一个comparator的,如下:
new TreeMap<String, String>(comparator)
如果使用了这个构造函数,那么构造出来的map则是根据传入的comparator来进行排序的。否则treemap根据自然顺序进行排序。
----------------------------------------
AbstractMap抽象类和SortedMap接口
AbstractMap抽象类:覆盖了equals()和hashCode()方法以确保两个相等映射返回相同的哈希码。如果两个映射大小相等、包含同样的键且每个键在这两个映射中对应的值都相同,则这两个映射相等。映射的哈希码是映射元素哈希码的总和,其中每个元素是Map.Entry接口的一个实现。因此,不论映射内部顺序如何,两个相等映射会报告相同的哈希码。
SortedMap接口:它用来保持键的有序顺序。SortedMap接口为映像的视图(子集),包括两个端点提供了访问方法。除了排序是作用于映射的键以外,处理SortedMap和处理SortedSet一样。添加到SortedMap实现类的元素必须实现Comparable接口,否则您必须给它的构造函数提供一个Comparator接口的实现。
---------------------------------------------------------
看jdk上的描述:
注意,此实现不是同步的。如果多个线程同时访问一个映射,并且其中至少一个线程从结构上修改了该映射,则其必须 外部同步。(结构上的修改是指添加或删除一个或多个映射关系的操作;仅改变与现有键关联的值不是结构上的修改。)这一般是通过对自然封装该映射的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 Collections.synchronizedSortedMap
方法来“包装”该映射。最好在创建时完成这一操作,以防止对映射进行意外的不同步访问,如下所示:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
- HashMap和TreeMap
- HashMap和TreeMap
- HashTable,HashMap和TreeMap
- HashMap和TreeMap
- hashmap和treemap
- HashMap和TreeMap
- HashMap和TreeMap区别
- HashMap和TreeMap区别
- hashmap和treemap比较
- TreeMap 和 HashMap 用法
- HashMap和TreeMap详解
- HashMap和TreeMap
- HashMap和TreeMap
- HashMap和TreeMap排序
- HashMap和TreeMap
- HashMap 和TreeMap的比较?
- HashMap Hashtable LinkedHashMap 和TreeMap
- HashMap Hashtable LinkedHashMap 和TreeMap
- CodeIgniter 框架的简单分析
- 即时通讯开发平台中的透明通道,为你二次开发排忧解难
- 数组名与指针,一个有意思的区别
- 架构师书籍列表
- I Need To Wake Up 我该醒来
- hashmap和treemap
- MySql导出Excel的时间问题
- samba快速设置
- OGRE中的Entity与InstancedGeometry .
- synchronized详解
- WINCE 触摸屏驱动简介
- C3P0
- 二分查找
- 怎样在MAC OSX上adb连接小米2