ArrayList、LinkedList的异同点 ,各自优势(应用场景)

ArrayList、LinkedList的异同点 ,各自优势(应用场景)
  1. 相同点:

a. 继承关系:List接口下的实现类,具有List提供的所有方法;

b. 有序性:数据都是插入有序;

c. 重复性:集合中元素是可以重复的;

d. null值:都可以存储null值;

e. 安全性:都是非线程安全的集合;

  1. 不同点:

a. 数据结构:ArrayList底层是数组,LinkedList底层是链表(双向链表);

b. 特有方法:LinkedList具有特有的方法,例如:addFirst()、addLast()(原因是因为LinkedList实现了Deque(双向队列)接口);

c. 效率:ArrayList查询效率高O(1),LinkedList添加O(1)、删除效率高;ArrayList添加元素趋近于O(1)\在不扩容情况下就是O(1);

d. 应用场景不同:ArrayList在查询较高的业务场景优先考虑; LinkedList 在修改、添加等操作较多的场景下优先考虑;

你可能感兴趣的:(Java,集合)