一、ArrayList
通过源码知道,ArrayList 其实就是一个老外帮我们写的蛮牛逼的一个 Object[] 的操作。
插入/删除一个元素就是:
1、重新确定数组长度
2、重新产生一个数组(数组长度是不可变的,因此通过copy的方式)
因此ArrayList 通过索引等,取或者改内容比较快。插入和删除比较慢。
二、LinkedList
LinkedList 就是数据结构中的链表,访问比较慢,但是抽插比较快。
三、总结
1、需要快速抽插的用 LinkedList ,譬如我们从数据库得到数据后,要反复对它进行数据插入删除操作。
2、需要快速访问元素/遍历 ,用ArrayList。譬如我们从数据库得到数据后 ,需要获取数据传递给别的方法,这种时候一般不用LinkedList。