Java集合II,map
一.概述
map保存的是具有映射关系的数据,可以说存着两组数据:key和value,是一一对应的;
他们都可以使用任何引用类型的数据,其中key不能重复,通过指定的key就可以获取到对应的value;
map不继承collection接口。
二.几种map类
1.hashmap和hashtable
| 线程安全 | 空值 | 性能 | 顺序 | |
| hashmap | 同步的,安全 | 只能有一个key为空,可以有多个value为空 | 最好 | 键值对顺序不与插入顺序一致 |
| hashtable | 异步的,不安全 | 不允许有空值 | 最差 |
2.treemap
可实现sortmap接口,基于红黑树对所有的key进行排序,key以treeset形式存储;
支持自然排序和自定义排序。
【代码.jpg】
3.linkedhashmap
使用双向链表来维护键值对的次序,迭代顺序与插入顺序保持一致;
需要维护元素的插入顺序,所以性能略低于hashmap,但在迭代访问元素时有很好的性能。
4.identityhashmap
与hashmap基本类似,但identityhashmap使用==来比较key是否相等,而hashmap使用equals方法
==
如果作用于基本数据类型的变量,则直接比较其存储的“值”是否相等;
如果作用于引用类型的变量,则比较的是所指对象的地址。
equals
不能作用于基本数据类型的变量;
默认比较的是引用类型的变量所指对象的地址;
若对equals方法进行了重写,如:String、Date等类,比较的是所指对象的内容。
5.weakhashmap
weakhashmap中的每个key对象保存了实际对象的弱引用;
当回收了该key所对应的实际对象后,它会自动删除该key所对应的键值对。

浙公网安备 33010602011771号