集合扩容机制
- ArrayList:扩容为原来数组长度的1.5倍,如果1.5倍小于所需的长度,则直接扩容到所需容量的大小。
- HashMap:默认的初始化大小为 16。之后每次扩充,容量变为原来的 2 倍(保证容量为2的幂次方)。
- HashTable:默认的初始大小为 11,之后每次扩充,容量变为原来的 2n+1。
HashSet、TreeSet、LinkedHashSet的区别
- HashSet 是 Set 接⼝的主要实现类 , HashSet 的底层是 HashMap ,线程不安全的,可以存储 null 值;
- LinkedHashSet 是 HashSet 的⼦类,能够按照添加的顺序遍历;
- TreeSet 底层使用红黑树,能够按照添加元素的顺序进行遍历,排序的⽅式有⾃然排序和定制排序。