Map集合是一种双列集合。由两部分组成。键和值。称为键值对。
Map集合框架图:
类型区别
HashMap
最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。
TreeMap
能够把它保存的记录根据键(key)排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。TreeMap不允许key的值为null。非同步的。
Hashtable
与 HashMap类似,不同的是:key和value的值均不允许为null;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。
LinkedHashMap
保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.在遍历的时候会比HashMap慢。key和value均允许为空,非同步的。
Map集合特点:
1.Map集合的特点都是由键决定的
2.Map集合的键是 无序 不重复 无索引的,值可以不做要求
3.Map集合后面重复的键对应的值会覆盖前面重复键的值
4.Map集合的键值对都可以为null
Map集合实现类特点:
HashMap:元素按照键 无序 不重复 无索引 值不做要求
LinkedHashMap:元素按照键 有序 不重复 无索引 值不做要求
TreeMap:元素按照键 排序 不重复 无索引 值不做要求
Map常用的API: