IList、List、ArrayList區別

背景

最近在學習大話設計模式時,遇到了關於list的一系列問題,於是就想搞清楚。

 

List與IList區別

IList是一個接口,定義了一些方法

List是一個泛型類,它已經實現了IList定義的那些方法

如果只是作爲集合數據的承載體,那麼這兩個是沒有區別的。

但是一旦與方法聯繫起來,IList就不能使用了。因爲IList是一個接口,裏面並沒有多少可調用的方法。而List使用就非常方便了,你可以排序、篩選·······

List與ArrayList區別

List爲泛型集合

ArrayList爲非泛型集合。

這兩者大部分方法都是非常相似的,它們都繼承了IList接口。

ArrayList可以插入不同的數據,是Object類型的集合。所以在存取數據時比較麻煩,需要裝箱、拆箱操作。

List只能在實例化時定義一種類型,存儲數據只能存儲同一種類型,否則會報錯。相對來說它比較安全。

--------------------------------------------------------------------------------------------------------------------------

List list = new ArrayList();

這句創建了一個ArrayList的對象後把上溯到了List。此時它是一個List對象了,有些ArrayList有但是List沒有的屬性和方法,它就不能再用了。

ArrayList list=new ArrayList();

創建一對象則保留了ArrayList的所有屬性。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章