說到這兩個的差異咱們想到的首先就應該是這兩個集合的性質有相對較大的區別,List就像是一個火車,ArrayList就像是本身家的小轎車,List對於裝載的事物有限制一開始必須在泛型定義好的事物,就是拉貨物的火車車箱中都幾乎是貨物,編程
而小汽車是自家的你想拉啥就拉啥,ArrayList就充當小轎車的角色,可是其相對速度 對比火車較差,數組
在編程中,咱們對於ArrayList儘可能能不用就不用,因爲他什麼東西都放,因此每每會致使,你沒法用特定的類型進行接收,由於其取出時object類型須要強轉爲你須要的類型性能
同時ArrayList和List主要差異爲裝箱和拆箱的問題spa
ArrayList:須要首先將類型轉變爲Object也就是裝箱的問題,而後再將Object轉換爲其所對應的類型也就是拆箱的操做對象
List:由於泛型中指定了類型因此其不須要進行裝箱拆箱操做,效率也就相對提高blog
List和ArrayList的區別
1.list性能較高,ArrayList性能較低
2.list一次存儲中只能存儲泛型中的類型,ArrayList在一次存儲中任何類型的數據
3.List中獲取值取出的是泛型中發的類型,由於ArrayList對元素沒有限制,系統會將中獲取的值當object類型的數據,
若是想獲取到其中的內容須要進行
4. List在使用時候須要導入的using指令爲using System.Collections.Generic;
ArrayList在使用的時候須要導入的using指令爲using System.Collections;
5.List屬於泛型集合 ArrayList屬於非泛型集合字符串
例子以下:string
ArrayList:it
/*一:ArrayList集合*/ //1.首先建立對象 ArrayList arr=new ArrayList(); //使用Add()方法添加元素,對元素類型沒有限制 arr.Add (12); arr.Add ("1234"); arr.Add (12.7f); //使用 /下標/ 來獲取指定位置的元素 Console.WriteLine ("arr[0]="+arr[0]); //獲取當前數組的數量 int count=arr.Count; //使用insert()方法向指定下標位置插入元素 arr.Insert(1,"老張"); Console.WriteLine ("arr[1]="+arr[1]); //使用Remove()方法從數組中刪除指定元素 arr.Remove("老張"); Console.WriteLine ("arr[1]="+arr[1]); //使用RemoveAt()方法,將指定下標位置的元素刪除 arr.RemoveAt(0); Log (arr); //判斷指定元素中是否存在當前數組中 bool b=arr.Contains("老王"); if (b) { Console.WriteLine ("老王在數組中"); } else { Console.WriteLine ("老王不在數組中!!!!"); }
List:io
//1.首先建立對象 List<string> list=new List<string>(); //使用Add()方法添加元素,只能添加字符串類型的元素 list.Add("123"); list.Add ("778"); //實用[下標]來獲取指定位置的元素 Console.WriteLine ("arr[0]="+arr[0]); //獲取當前數組中的元素的數目 int count1=arr.Count; //使用insert()方法向指定下標位置插入元素 arr.Insert(1,"老張"); Console.WriteLine ("arr[1]="+arr[1]); //使用Remove()方法從數組中刪除指定元素 arr.Remove("老張"); //使用RemoveAr()方法刪除指定下標位置的元素 list.RemoveAt(0); Console.WriteLine (list[0]); //Contains()判斷指定元素是否存在在當前數組中 bool b1=list.Contains("老王"); if (b1) { Console.WriteLine ("老王在數組中!!!!"); } else { Console.WriteLine ("老王不在數組中!!!!"); } //進行集合的清空 list.Clear (); Console.WriteLine (list.Count);