1. 程式人生 > >List 和 ArrayList 的區別

List 和 ArrayList 的區別

關於List和ArrayList、List<String> list = new ArrayList<String>();

 

List是一個介面,是Collection介面的一個子介面,是一個有序的集合。

ArrayList是List的一個實現類,可以實現陣列大小的可變,可以很方便的進行增加和刪減陣列內元素的操作。

 List<NameValuePair> paraList = new ArrayList<>();
 paraXmlList("cfgXml", dataxmlPath, paraList);
 paraList.add(new BasicNameValuePair("productid", productid));//(此處對List進行添加了資料)

List list=new ArrayList();這種形式成為向上轉型,ArrayList實現了List介面,可以看成是從List繼承而來,一個子類的物件可以指向它父類。

比如,狗從動物繼承而來,狗是一隻動物,所以狗的物件可以當作一隻普通的動物來看待。

 

然後再來說說List<String> list=new ArrayList<String>();為甚麼要宣告為List 而不是ArrayList<String>?

List是集合最大的父類,它包含了ArrayList。
如果直接宣告為ArrayList<String> list=new ArrayList<String>()這個也沒有問題,但是不推薦,應為這樣顯得不是很靈活,因為List下除了ArrayList還有LinkList等他們都實現了List裡面的方法。
而宣告成:List<String> list=new ArrayList<String>();這樣的形式使得list這個物件可以有多種的存在形式

比如要用連結串列存資料的話直接用LinkedList,使用ArrayList或者Vector直接通過list = new LinkedList<String>();就可以了,這樣讓list這個物件活起來了

很多需求只能用一個list,記憶體有限,或者執行緒同步,不能有更多的集合物件,使得List總的介面來管理物件。