底层数组,但是会动态增长、只存数据,不存地址,逻辑顺序和物理顺序一致。
优点:按照索引查询效率高
缺点:删除效率低
双向链表,不连续的空间,不仅存数据,还存地址,逻辑顺序和物理顺序不一致。
优缺点与ArrayList相反
都浪费,ArrayList创建固定空间,但不一定使用到那么多空间;LinkedList虽然使用多少创建多少,但是既要数据又要地址。
哈希表,key-value结构
www.jianshu.com/p/939b8a672…
1.7 是数组加链表,1.8是链表大于8之后链表为红黑树,目的是减少比较次数,提高效率
链表上的每个节点就是一个Entry
默认长度16
默认装填因子0.75(元素个数达到主数组长度的75%时扩容)
扩容为原来的2倍,new一个新的数组,将老的数组中的数据一个个的转移,不是复制
发生hash冲突,经过比较不存在相同的key元素,要添加一个新的节点。1.7不是添加在链表最后,而且最前;1.8是插在链表的尾部
HashSet底层就是HashMap,HashSet为HashMap的key,value为new Object()