1. 程式人生 > >面試專欄|一篇文章搞定ArrayList和LinkedList所有面試問題

面試專欄|一篇文章搞定ArrayList和LinkedList所有面試問題

在面試中經常碰到:ArrayList和LinkedList的特點和區別?

個人認為這個問題的回答應該分成這幾部分:

  1. 介紹ArrayList底層實現

  2. 介紹LinkedList底層實現

  3. 兩者個適用於哪些場合

本文也是按照上面這幾部分組織的。

ArrayList的原始碼解析

成員屬性原始碼解析

 
  1. public class ArrayList<E>

  2. extends AbstractList<E>

  3. implements List<E>, RandomAccess

  4. ,Cloneable, java.io.Serializable {

  5. private static final long

  6. serialVersionUID

  7. = 8683452581122892189L;

  8.  
  9. //預設容量是10

  10. private static final int

  11. DEFAULT_CAPACITY = 10;

  12.  
  13. //當傳入ArrayList構造器的容量為0時

  14. //用這個陣列表示:容器的容量為0

  15. private static final Object[]

  16. EMPTY_ELEMENTDATA = {};