1.Map的实现类:
1.1HashMap:主要实现类;线程不安全,效率高,可储存null;底层为数组+链表(jdk7),数组+链表+红黑树(jdk8)
1.1.1inkedHashMap:保证遍历时可按照添加顺序实现遍历
1.2Hashtable:古老实现类:线程安全,效率低;不能存储null
1.2.2Properties:常用来处理配置文件。Key和value都是string类型
1.3TreeMap:保证按照添加的KEY_value对排序,实现排序遍历。此时考虑key的自然排序和定制排序;底层为红黑树
2.key—value的特点
Key无序,不可重复,使用set存储
value无序,可重复,使用collection储存
map中的entry无序,不可重复,使用set存储
3.HashMap的底层实现原理
3.1jdk7:
HashMap map = new HashMap();//实例化后,底层创建长度为16的一维数组Entry[] table。 //...(添加操作) map.put(key,value); //...(添加操作)
3.2jdk8与jdk7的不同:
底层数组变为Node[];
实例化时没有创建数组,调用put方法是创建数组;
底层结构变为数组+链表+红黑树(当数组的某一个索引位置上的元素以链表的形式存在的数据个数大于8且当前数组长度大于64时,此时此索引位置上的数据改为红黑树储存)



