C 中Array與ArrayList的區別

2021-04-23 02:01:14 字數 2935 閱讀 4428

c#中經常用到的集合類array與arraylist是許多剛接觸c#語言的人比較困惑的。這兩個物件是比較有用的,而且是在很多地方適用的。這裡我把自己對array與arraylist物件的區別總結一下,與大家分享。

主要區別:

一、array的用法與陣列幾乎一樣,可以看做是陣列。在定義的時候需要指定長度;arraylist的用法與普通集合一樣,定義的時候不需要指定長度;

如:array animalarray = new array[2];

arraylist animalarraylist = new arraylist();

二、array物件在獲得元素個數時通過陣列的獲得方式(length屬性):animalarray.length;arraylist物件在獲得元素個數時通過集合的獲得方式(count屬性):animalarraylist.count;

三、為array物件賦值時,通過下標的訪問方式:animalarray[1] = new chicken("雞雞一");array物件通過集合新增的方式賦值:animalarraylist.add(new chicken("雞雞二"));

以下是針對array與arraylist的乙個例子,其中包括乙個基類animal和兩個繼承類chicken、cow;當然主要的**和功能在program中。這幾個類的**分別為:

animal類:

using system;

using system.collections.generic;

using system.text;

namespace animalconsole

set}

public animal()

public animal(string newname)

public void feed()

」 已經被餵養!",name);}}

}chicken類:

using system;

using system.collections.generic;

using system.text;

namespace animalconsole

」 已經下了乙個蛋!",name);

}public chicken(string newname) : base(newname)}}

cow類:

using system;

using system.collections.generic;

using system.text;

namespace animalconsole

」 已經被餵奶!",name);

}public cow(string newname) : base(newname)}}

program類:

using system;

using system.collections;

using system.collections.generic;

using system.text;

namespace animalconsole

」 已經新增到 array 類列表集合中,名叫 「」",myanimal.tostring(),myanimal.name);

}console.writeline("array 類列表集合包含 個物件。",animalarray.length);

animalarray[0].feed();

((chicken)animalarray[1]).layegg();

console.writeline();

console.writeline("建立乙個 arraylist 類列表集合物件並使用它:");

arraylist animalarraylist = new arraylist();

cow mycow2 = new cow("牛牛二");

animalarraylist.add(mycow2);

animalarraylist.add(new chicken("雞雞二"));

foreach (animal myanimal in animalarraylist)

」 已經新增到arraylist類列表集合中,名叫 「」",myanimal.tostring(),myanimal.name);

}console.writeline("arraylist 類列表集合包含 個物件。",animalarraylist.count);

((animal)animalarraylist[0]).feed();

((chicken)animalarraylist[1]).layegg();

console.writeline();

console.writeline("arraylist 的附加操作:");

animalarraylist.removeat(0);

((animal)animalarraylist[0]).feed();

animalarraylist.addrange(animalarray);

((chicken)animalarraylist[2]).layegg();

console.writeline("名叫 「」 的動物的索引為 。",mycow1.name,animalarraylist.indexof(mycow1));

mycow1.name = "牛牛三";

console.writeline("這個動物現在叫: 「」",((animal)animalarraylist[1]).name);

console.readkey();}}

}執行結果如下圖:

摘自:http://hi.baidu.com/syg19850108/blog/item/e6f6a430ecd16aae5fdf0ee8.html

Java中的Vector與ArrayList的區別

首先看這兩類都實現list介面,而list介面一共有三個實現類,分別是arraylist vector和linkedlist。list用於存放多個元素,能夠維護元素的次序,並且允許元素的重複。1 arraylist 是最常用的list實現類,內部是通過陣列實現的,它允許對元素進行快速隨機訪問。陣列的...

C 中ArrayList與Array的區別

c array陣列的用法範例 type typename new type size 如int a new int 2 string str new string 5 實事上我們平常是用int,string.的,此時我們已經建立乙個array陣列,只不過我們平常沒有這種意識而已.1 type資料型別...

c 中Array與ArrayList的區別

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