ArrayList 和 LinkedList 是两种常用的 Java 集合类。它们都是用来存储多个元素的集合,但它们之间有一些重要的区别。ArayList 是基于数组实现的,其底层是一个动态数组。它支持快速随机访问,因为所有元素都连续存储在内存中。但插入和删除操作会比较慢,因为需要移动其他元素。
linkedList 则是基于链表实现的,每个元素都有一个指向下一个元的引用。它的插入和除操作速度较快,因为只需要更改指针的指向。但随机访问的速度比较慢,因为需要从头到尾遍历整个链表。
总之,如果您需要快速随机访问元素,那么 ArrayList 是一个好的选择,如果需要频繁插入和删除元素,则 LinkedList 是更好的选择.
ArrayList扩容机制:如果没有指定初始长度默认长度是10;如果元素存满会新建一个长度是原来数组1.5倍的数组,然后会调用Arrays.copyOf()方法把数据拷贝到新数组