集合的分类和区别
集合的扩容机制
Vactor:初始容量10,加载因子1,扩容机制是原容器的2倍。
ArrayList:初始容量10,加载因子1,扩容机制是原容量的1.5倍。
hashtable:初始容量11,加载因子0.75,扩容机制是原容量的2倍+1。
hashMap:初始容量16,加载因子0.75,扩容机制是原容器的2倍。
HashSet :初始容量16,加载因子0.75,扩容机制是原容器的2倍。
集合的底层原理
Vector:底层数据结构是数组,线程安全。
ArrayList:底层数据结构是数组查询快(地址连续)、增删慢、线程非安全。
LinkedList: 底层数据结构是链表(双向链表)、查询慢、增删快、无索引、线程非安全。。
HashSet:底层数据结构是哈希表(无序,唯一),通过hashcode()和equals()保证元素唯一。
LinkedHashSet:底层数据结构是链表和哈希表。
TreeSet:底层数据结构是红黑树(是一个自平衡的二叉树),通过自然排序和比较器排序保证元素有序,根据比
较返回值是否是0来保证元素唯一性。
HashMap:底层数据结构是数组+链表+红黑树。
Hashtable:底层数据结构是数组+链表。