一般大家都知道的几个基本的区别:

  • ArrayList是动态数组的数据结构,LinkList是基于链表的数据结构。
  • 随机的get和set访问List,一般都用ArrayList,因为LinkList需要移动指针来访问。
  • 对于add和remove相关操作,则LinkList的操作效率高,因为它只需要操作指针,而ArrayList需要移动数据。(此点只是针对大量或多条数据而言,单一的数据的话,ArrayList效率>LinkList效率。但若是大量的批量随机插入或者删除数据则相反,因为每插入一条数据ArrayList都要把即将插入的这条数据所处的index的后面的所有数据往后移动一位,这点使得ArrayList的效率变得没有LinkList那么高,相对的,LinkList只需要操作相应指针即可。)
  • 对于在List查找相关的操作(indexOf/contains等)效率应该是差不多的。
  • 随机查找指定的节点的操作,大多是:ArrayList>LinkList,在末尾插入数据例外。