List和ArrayList的區別在於:
1、在編程語言中ArrayList類是.Net Framework提供的用於數據存儲和檢索的專用類。List 類可以簡單視之為雙向連結串行,以線性列的方式管理物件集合。List類是ArrayList類的泛型等效類。
2、ArrayList繼承了IList接口,所以它可以很方便的進行數據的添加,插入和移除。List的大部分用法都與ArrayList相似,List類也繼承了IList接口。
3、在ArrayList中可以插入不同類型的數據。ArrayList會把所有插入其中的數據都當作為object類型來處理,這其中存在裝箱與拆箱的操作,會對系統造成性能上的損耗。而List需要聲明其數據的對象類型。聲明後插入其他類型數據,IDE就會報錯,且不能通過編譯。
4、在使用ArrayList中的數據來處理問題的時候,很可能會報類型不匹配的錯誤,即ArrayList不是類型安全的。而List已經聲明過其數據的對象類型,是類型安全的,避免了前面講的類型安全問題與裝箱拆箱的性能問題。
5、ListArray就可以被構造。而List不能被構造,但可以為List創建壹個引用。
擴展資料:
壹、List泛型
通過允許指定泛型類或方法操作的特定類型,泛型功能將類型安全的任務從程序員轉移給了編譯器。不需要編寫代碼來檢測數據類型是否正確,因為會在編譯時強制使用正確的數據類型。減少了類型強制轉換的需要和運行時錯誤的可能性。泛型提供了類型安全但沒有增加多個實現的開銷。
二、裝箱與拆箱的概念:
1、裝箱:就是將值類型的數據打包到引用類型的實例中 比如將int類型的值123賦給object對象o
int i=123; object o=(object)i;
2、拆箱:就是從引用數據中提取值類型 比如將object對象o的值賦給int類型的變量i
object o=123; int i=(int)o;
3、裝箱與拆箱的過程是很損耗性能的。
參考資料:
拆箱——百度百科