看名字就知道ArrayList基于数组,LinkedList基于链表。因此它们各自具备数组和链表的特性。
ArrayList的随机访问效率优于LinkedList,因为后者每次访问都要从头往后查找,就像链表一样要移动指针。
对于add和remove操作,LinkedList较优。因为ArrayList每次都需要移动插入点及以后的所有数据。而LinkedList就像链表那样增加一个节点,开销是固定的。具体实现没有仔细研究。
若操作只需要在末尾添加和删除数据或需要随机访问,用ArrayList较好。
若操作需要在前端和中间增删数据并且是顺序访问,用LindedList较好。