Map集合,HashMap,HashTable,ConCurrentHashMap,利用Iterator输出Map集合,自定义Map的key类型,TreeMap子类详解
(一):Map与Collection的比较
- Collection集合的特点是每次进行单个对象的保存。
- 每次对一对对象进行保存用Map集合。
- Collection存储数据的目的是为了输出。
- Map存储对象的目的是为了查找(当然两者都能输出查找)。
- Map可以看做是由多个Entry组成。
- 因为Map没有实现Collection,也没有实现Iterable,所以不能用foreach遍历。
(二):
- Map接口的常用的子类有HashMap,HashTable,TreeMap,ConcurrentHashMap 。
HashMap的原理:
在数据量小的时候,HashMap是按照链表的模式存储的。当数据量变大之后,为了进行快速的查找,会将这个链表变成 红黑树(均衡二叉树),用hash码作为数据的定位来进行保存。
在数据量小的时候,HashMap是按照链表的模式存储的。当数据量变大之后,为了进行快速的查找,会将这个链表变成 红黑树(均衡二叉树),用hash码作为数据的定位来进行保存。
ConcurrentHashMap :
ConcurrentHashMap的特点=HashMap的高性能+Hashtable的线程安全性。ConcurrentHashMap可以保证多个线程更新数据的同步,又可以保证很高效的查询速度。
ConcurrentHashMap的特点=HashMap的高性能+Hashtable的线程安全性。ConcurrentHashMap可以保证多个线程更新数据的同步,又可以保证很高效的查询速度。