作为List的两个实现类,他们的方法在逻辑上基本是相同的,但是由于底层数据结构的不同造成他们在使用中性能上有一定的差别。数据量比较小的时候,这种差别可以忽略不计。
ArrayList的底层数据结构是数组(动态的),我们可以通过数组的下标轻松地一次性定位到元素,因此ArrayList在查询操作中具有很大的优势。但也因其底层数据结构是数组,在进行元素的插入,删除,修改工作时,所有元素的下标都需要移动,这样执行的复杂程度随元素的增多而增多,运行速度自然相对较慢。
LinkedList的底层数据结构是链表,在进行数据的,增加,删除,修改工作时只需要移动元素的指针就行,改变的只是指针的地址,并不影响其他,因此在数据增删改时,LinkedList具有绝对的优势。但是如果需要查询数据时,LinkedList只能遍历,随着数据量的增加,访问速度会变慢。