1、类图:
2、ArrayList和Vector底层都是用数组实现,唯一区别是Vector是一种线程安全的实现。
3、LinkedList底层使用双向循环链表实现,无论LinkedList是否为空,链表内都有一个header节点,header的后驱节点是链表第一个元素,前驱节点是链表的最后一个元素。
4、ArrayList内部的数组初始化大小为10,每次扩容会将新数组大小设置为原来的1.5倍。在能有效评估ArrayList数组大小初始值的情况下,指定容量大小能对其性能有较大的提升。
5、LinkedList由于使用了链表的结构,因此不需要维护容量的大小。但是每次元素新增都需要创建一个Entry对象,并进行更多的赋值操作,会比较占用内存空间,对堆内存和GC的要求比较高。
6、List的遍历通常有3种方式:ForEach操作、迭代器和for循环。
原文:https://www.cnblogs.com/xy80hou/p/11480515.html