一、Map集合
1.Map:
1)存放的Key-value键值;
2)集合下面的实现类,HashMap(子类:LinkedHashMap)、HashTable(子类:Properties)、TreeMap;
3)Key存放的内容是唯一,不可重复,也是无序的,可以用Set接收,key中的对象必须重写hashCode跟equals方法;value存放的内容可重复,可用Collection接收,values存放对象必须重写equals方法;key-value可看做一对Entry,是不可重复的,Entry会根据key的位置来决定,可看做一个Set集合
2.HashMap:
1)底层是数组+链表+红黑树
2)底层的实现:插入数据时,会根据哈希值寻找在数组中对应的位置,若该位置没有其他值,则该对象插入该数组位置,若果有其他对象,则同eauals方法判断是否为true,如果是,则覆盖当前对象,如果返回值是false,则通过链表的形式,连接该对象,如果连接的对象超过8个,会转成红黑树的方式储存
3)HashSet底层是创建HashMap对象,所有值是存放在key值里面,value是个finanl修饰的object对象
4)线程不安全,key跟value可以是null
5)HashMap空参构造器:底层创建一个长度为16,加载因子为0.75,当内容超过10 * 0.75时,底层会进行扩容,容量为原来长度的2倍
3.LinkedHashMap:
1)由于该类只有构造器,继承了父类HashMap,底层实现方式跟HashMap一致,只是该类在遍历时通过插入的先后顺序进行输出
4.HashTable:
1)线程安全,key跟value不能是null,实现方式跟HashMap一致
5.Properties:
1)key跟value都是字符,用来读取文件内容
6.TreeMap:
1)可以对元素进行排序,只能对key中的元素进行排序