C 中ArrayList與Array的區別

2021-06-28 23:19:11 字數 2330 閱讀 1381

c# array陣列的用法範例:

type typename=new type[size];

如int a=new int[2];string str=new string[5];

實事上我們平常是用int,string...的,此時我們已經建立乙個array陣列,只不過我們平常沒有這種意識而已.

(1):type資料型別不能缺;且要統一,而不能是如 int a=new array;

(2):陣列的大小size不能缺,否則c#認為是出錯的,因為陣列是一段固定長度的記憶體;

(3):右邊是乙個中括號,而不是();

例項:

//array ar = new array();//錯誤,無法建立抽象類或介面「system.array」的例項

//int array = new array[3];錯誤,

//int array = new array;錯誤,必須指定陣列的大小或初始值

//int array = new array[3];//錯誤,無法轉換為int

//int array=new int;//錯誤,必須指定陣列的大小或初始值

//平常我們int,string...事實上就是宣告乙個array陣列了

int array=newint[5];//或int arr=;

for(inti=0; i<5; i++)...

response.write(array.length+"

");例項:

//array ar = new array();//錯誤,無法建立抽象類或介面「system.array」的例項

//int array = new array[3];錯誤,

//int array = new array;錯誤,必須指定陣列的大小或初始值

//int array = new array[3];//錯誤,無法轉換為int

//int array=new int;//錯誤,必須指定陣列的大小或初始值

//平常我們int,string...事實上就是宣告乙個array陣列了

int array=newint[5];//或int arr=;

for(inti=0; i<5; i++)...

response.write(array.length+"

");使用arraylist的例項:

...response.write(al.count + "

");foreach (int obj in al)

使用arraylist的例項:

...response.write(al.count + "

");foreach (int obj in al)

arraylist最佳使用建議

(1)arraylist是array的複雜版本

arraylist內部封裝了乙個object型別的陣列,從一般的意義來說,它和陣列沒有本質的差別,甚至於arraylist的許多方法,如index、indexof、contains、sort等都是在內部陣列的基礎上直接呼叫array的對應方法。

(2)內部的object型別的影響

對於一般的引用型別來說,這部分的影響不是很大,但是對於值型別來說,往arraylist裡面新增和修改元素,都會引起裝箱和拆箱的操作,頻繁的操作可能會影響一部分效率。

但是恰恰對於大多數人,多數的應用都是使用值型別的陣列。

消除這個影響是沒有辦法的,除非你不用它,否則就要承擔一部分的效率損失,不過這部分的損失不會很大。

(3)陣列擴容

這是對arraylist效率影響比較大的乙個因素。

每當執行add、addrange、insert、insertrange等新增元素的方法,都會檢查內部陣列的容量是否不夠了,如果是,它就會以當前容量的兩倍來重新構建乙個陣列,將舊元素copy到新陣列中,然後丟棄舊陣列,在這個臨界點的擴容操作,應該來說是比較影響效率的。

(4)頻繁的呼叫indexof、contains等方法(sort、binarysearch等方法經過優化,不在此列)引起的效率損失

首先,我們要明確一點,arraylist是動態陣列,它不包括通過key或者value快速訪問的演算法,所以實際上呼叫indexof、contains等方法是執行的簡單的迴圈來查詢元素,所以頻繁的呼叫此類方法並不比你自己寫迴圈並且稍作優化來的快,如果有這方面的要求,建議使用hashtable或sortedlist等鍵值對的集合。

C 中Array與ArrayList的區別

c 中經常用到的集合類array與arraylist是許多剛接觸c 語言的人比較困惑的。這兩個物件是比較有用的,而且是在很多地方適用的。這裡我把自己對array與arraylist物件的區別總結一下,與大家分享。主要區別 一 array的用法與陣列幾乎一樣,可以看做是陣列。在定義的時候需要指定長度 ...

C 中陣列,ArrayList與List物件的區別

在c 中,當我們想要儲存一組物件的時候,就會想到用陣列,arraylist,list這三個物件了。那麼這三者到底有什麼樣的區別呢?我們先來了解一下陣列,因為陣列在c 中是最早出現的。陣列陣列有很多的優點,比如說陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡單,比如 ...

c 中Array與ArrayList的區別

針對任意型別,固定長度 通過儲存 object 實現任意型別的,所以使用時要轉換。在c 中的陣列也是物件,實際上就是array類的例項 是乙個抽象類 在clr託管對中的存放方式始終是連續存放的 初始化必須只定指定大小,且建立後的陣列大小是固定的 不能夠隨意新增和刪除其中的項 針對任意型別 任意長度的...