ArrayList:底层数据结构是数组结构,线程不安全。所以ArrayList的出现替代了Vector,但是查询的速度很快,增加和删除非常慢。这个是因为ArrayList的增加和删除需要新建立一个数组去实现,就把定义一个新集合,把要增加的元素添加在新集合相应的位置以后,再把原来的旧集合内的元素复制过来,然后再返回新集合的地址,删除和添加的步骤差不多。
LinkedList:底层结构是链表数据结构,线程不安全的,同时对元素的增删操作效率很高。LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始然后依次向后去查找,直到找到所查找的元素。
使用:
如果查找比较多,建议用ArrayList。
如果增删比较多,建议用LinkedList。 |