List三种实现
ArrayList 、LinkList、Vector
ArrayList | LinkList | Vector |
非同步类 | 非同步类 | 同步类 |
动态数组 | 双向链表 | 类似ArrayList,额外实现了Queue接口 故包含offer(),peek(),poll()等方法 |
get、set性能优 | add、remove性能优 | |
空间动态调整,每次扩容50% | 空间动态调整,每次扩容100% | 无扩容概念,有1加1 |
拓展
***
数组转List其中一中方法Arrays.asList(数组),返回的是原数组视图的list,大小固定,不能add、remove;可以使用ArrayList构造器将其转变为真正的List:
String [] array = {"a","b","c"};
List<String> list = new ArrayList<String>(Arrays.asList(array));
***
ArrayList初始大小为10;
HashMap初始大小为16;扩容因子:0.75;扩容100%;(如,原容量大小32,现有24,达到0.75,扩容100%,容量到达64)
***
获取数组的大小 array.length; 为数组所占空间,并非实际元素数量