List 和 ArrayList 的區別


最近對這兩個問題比較懵逼,關於ListArrayListList<String> list = new ArrayList<String>();

 

好了,先搞明白List 和 ArrayList吧。

List是一個接口,是Collection接口的一個子接口,是一個有序的集合。

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

1 List<NameValuePair> paraList = new ArrayList<>();
2 paraXmlList("cfgXml", dataxmlPath, paraList);
3 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總的接口來管理對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM