對Java程序開發(fā)而言,ArrayList 的使用頻率是非常高的,尤其在進行 JavaWeb 開發(fā)的時候,ArrayList 和 HashMap 這兩個類,相信你一定不會陌生,因為天天都在用嘛。

本系列對 ArrayList 做一個解析,同時把Java基礎知識個串連進去。一開始我會對如何使用 ArrayList 做一個簡要的說明,然后,我們來仿照 ArrayList 封裝一個自己的集合框架MyList,通過練習,來一步一步猜想ArrayList 可能的實現(xiàn)方式。

最后,深入到ArrayList 的源碼進行解讀。

為什么要學習源碼?

很簡單,一個知道源碼的人和一個不知道源碼的人,雖然都能使用 ArrayList ,但是,他們在使用的時候,心態(tài)是完全不一樣的。

只有當你深入了源碼,然后你才會對它的一些細節(jié)有更充分的認識。這是一本萬利的事情。

當然,對于初學者,還是盡量以使用為主,因為源碼的話,畢竟有一定的難度。如果一味地追求這些東西,可能會大大降低自己的學習興趣和熱情。

##1、 ArrayList 概述

副本難度:一顆星
經(jīng)驗值:500


首先來看一下文檔,

All Implemented Interfaces: Serializable, Cloneable, Iterable

從圖中可以看到,ArrayList 實現(xiàn)了Iterable接口,這個接口表示一種迭代的能力。

既然是ArrayList,那么肯定和 List 有關,所以它果然繼承了List接口。

接口