第12题(2023/9/17)
ArrayList和LinkedList的区别?
答:
(1)Arraylist是基于动态数组的,是按顺序进行存储的,存储在一片连续的区域,支持随机访问(按照数组下标查找元素)。不利于删除和插入元素。
扩容机制:使用new一个新的数组,将就数组中的元素进行拷贝以达到数组扩容的目的
使用尾插法和初始化数组长度可以提高插入元素的性能
(2)LinkedList是基于链表的,可以进行离散存储,不支持随机访问,查找元素时,只能对链表进行遍历元素,不利于查找,利于删除和插入元素。
例如:使用indexof()时,就需要进行遍历数组,当元素不存在时,就需要遍历整个链表,效率比较低。