摘要
ArrayList是一種泛型類,用于在C#中創(chuàng)建動(dòng)態(tài)數(shù)組。它提供了很多有用的方法,可以用于添加,插入或移除元素。由于ArrayList類是在System.Collections命名空間下定義的,因此在使用它之前必須加上這個(gè)命名空間。ArrayList是.NET Framework中最常用的動(dòng)態(tài)數(shù)組類之一,它是使用最廣泛的類之一。
ArrayList的一個(gè)重要特點(diǎn)是它是動(dòng)態(tài)數(shù)組。這意味著當(dāng)我們向ArrayList中添加元素時(shí),它會(huì)自動(dòng)調(diào)整大小以適應(yīng)這些元素。如果添加的元素超出了當(dāng)前數(shù)組的大小,ArrayList會(huì)創(chuàng)建一個(gè)新的數(shù)組并將元素復(fù)制到新數(shù)組中。這種機(jī)制使得ArrayList可以適應(yīng)各種數(shù)據(jù)集,并且可以避免不必要的內(nèi)存分配。
在ArrayList中,我們可以使用以下方法添加,插入或移除元素:
Add:向ArrayList中添加一個(gè)元素。
Insert:將一個(gè)元素插入到ArrayList的特定位置。
Remove:從ArrayList中移除一個(gè)元素。
除此之外,ArrayList還提供了許多其他有用的方法,例如Find和IndexOf,這些方法可以用于查找元素在ArrayList中的位置。
雖然ArrayList是一種強(qiáng)大的數(shù)組類,但是它也有一些缺點(diǎn)。例如,在添加或移除元素時(shí),ArrayList需要調(diào)整大小,這可能會(huì)導(dǎo)致一些性能問題。此外,在訪問ArrayList中的元素時(shí),我們只能一次獲取或設(shè)置一個(gè)元素的值。這可能會(huì)導(dǎo)致一些不必要的復(fù)制和比較操作,從而影響程序的性能。
ArrayList是一種非常有用的類,可以幫助我們創(chuàng)建動(dòng)態(tài)數(shù)組。盡管它有一些缺點(diǎn),但是在大多數(shù)情況下,ArrayList都是一種非常實(shí)用的工具,可以提高程序的效率和靈活性。
正文
不建議將類用于 ArrayList
新開發(fā)。 相反,我們建議使用泛型 List<T> 類。 該 ArrayList 類旨在保存對(duì)象的異類集合。 但是,它并不總是提供最佳性能。 建議執(zhí)行以下操作:
屬性
|
|
---|
Capacity | 獲取或設(shè)置 ArrayList 可包含的元素?cái)?shù)。 |
Count | 獲取 ArrayList 中實(shí)際包含的元素?cái)?shù)。 |
IsFixedSize | 獲取一個(gè)值,該值指示 ArrayList 是否具有固定大小。 |
IsReadOnly | 獲取一個(gè)值,該值指示 ArrayList 是否為只讀。 |
IsSynchronized | 獲取一個(gè)值,該值指示是否同步對(duì) ArrayList 的訪問(線程安全)。 |
Item[Int32] | 獲取或設(shè)置指定索引處的元素。 |
SyncRoot | 獲取可用于同步對(duì) ArrayList 的訪問的對(duì)象。 |
方法
|
|
---|
Adapter(IList) | 為特定 IList 創(chuàng)建 ArrayList 包裝。 |
Add(Object) | 將對(duì)象添加到 ArrayList 的結(jié)尾處。 |
AddRange(ICollection) | 將 ICollection 的元素添加到 ArrayList 的末尾。 |
BinarySearch(Int32, Int32, Object, IComparer) | 使用指定的比較器在已排序 ArrayList 的某個(gè)元素范圍中搜索元素,并返回該元素從零開始的索引。 |
BinarySearch(Object) | 使用默認(rèn)的比較器在整個(gè)已排序的 ArrayList 中搜索元素,并返回該元素從零開始的索引。 |
BinarySearch(Object, IComparer) | 使用指定的比較器在整個(gè)已排序的 ArrayList 中搜索元素,并返回該元素從零開始的索引。 |
Clear() | 從 ArrayList 中移除所有元素。 |
Clone() | 創(chuàng)建 ArrayList 的淺表副本。 |
Contains(Object) | 確定某元素是否在 ArrayList 中。 |
CopyTo(Array) | 從目標(biāo)數(shù)組的開頭開始,將整個(gè) ArrayList 復(fù)制到兼容的一維 Array。 |
CopyTo(Array, Int32) | 從目標(biāo)數(shù)組的指定索引處開始將整個(gè) ArrayList 復(fù)制到兼容的一維 Array。 |
CopyTo(Int32, Array, Int32, Int32) | 從目標(biāo)數(shù)組的指定索引處開始,將 ArrayList 中某個(gè)范圍的元素復(fù)制到兼容的一維數(shù)組 Array。 |
Equals(Object) | 確定指定對(duì)象是否等于當(dāng)前對(duì)象。 (繼承自 Object) |
FixedSize(ArrayList) | 返回具有固定大小的 ArrayList 包裝。 |
FixedSize(IList) | 返回具有固定大小的 IList 包裝。 |
GetEnumerator() | 返回用于整個(gè) ArrayList 的枚舉數(shù)。 |
GetEnumerator(Int32, Int32) | 返回 ArrayList 中元素范圍的枚舉器。 |
GetRange(Int32, Int32) | 返回一個(gè) ArrayList,它表示源 ArrayList 中的元素子集。 |
IndexOf(Object) | 搜索指定的 Object,并返回整個(gè) ArrayList 中第一個(gè)匹配項(xiàng)的從零開始的索引。 |
IndexOf(Object, Int32) | 搜索指定的 Object,并返回 ArrayList 中從指定索引到最后一個(gè)元素的元素范圍中第一個(gè)匹配項(xiàng)的從零開始索引。 |
IndexOf(Object, Int32, Int32) | 搜索指定的 Object,并返回 ArrayList 中從指定索引開始,并包含指定元素?cái)?shù)的元素范圍中第一個(gè)匹配項(xiàng)的從零開始的索引。 |
Insert(Int32, Object) | 將元素插入 ArrayList 的指定索引處。 |
InsertRange(Int32, ICollection) | 將集合中的元素插入 ArrayList 的指定索引處。 |
LastIndexOf(Object) | 在整個(gè) ArrayList 中搜索指定的 Object,并返回最后一個(gè)匹配項(xiàng)的從零開始的索引。 |
LastIndexOf(Object, Int32) | 搜索指定的 Object,并返回 ArrayList 中從第一個(gè)元素到指定索引這部分元素中最后一個(gè)匹配項(xiàng)的從零開始索引。 |
LastIndexOf(Object, Int32, Int32) | 搜索指定的 Object,并返回 ArrayList 中到指定索引為止包含指定元素?cái)?shù)的這部分元素中最后一個(gè)匹配項(xiàng)的從零開始的索引。 |
ReadOnly(ArrayList) | 返回只讀的 ArrayList 包裝。 |
ReadOnly(IList) | 返回只讀的 IList 包裝。 |
Remove(Object) | 從 ArrayList 中移除特定對(duì)象的第一個(gè)匹配項(xiàng)。 |
RemoveAt(Int32) | 移除 ArrayList 的指定索引處的元素。 |
RemoveRange(Int32, Int32) | 從 ArrayList 中移除一系列元素。 |
Repeat(Object, Int32) | 返回 ArrayList,其元素是指定值的副本。 |
Reverse() | 將整個(gè) ArrayList 中元素的順序反轉(zhuǎn)。 |
Reverse(Int32, Int32) | 將指定范圍中元素的順序反轉(zhuǎn)。 |
SetRange(Int32, ICollection) | 復(fù)制 ArrayList 中一個(gè)子集合的元素。 |
Sort() | 對(duì)整個(gè) ArrayList 中的元素進(jìn)行排序。 |
Sort(IComparer) | 使用指定的比較器對(duì)整個(gè) ArrayList 中的元素進(jìn)行排序。 |
Sort(Int32, Int32, IComparer) | 使用指定的比較器對(duì) ArrayList 中某個(gè)范圍內(nèi)的元素進(jìn)行排序。 |
Synchronized(ArrayList) | 返回同步的(線程安全)ArrayList 包裝器。 |
Synchronized(IList) | 返回同步的(線程安全)IList 包裝器。 |
ToArray() | 將 ArrayList 的元素復(fù)制到新 Object 數(shù)組中。 |
ToArray(Type) | 將 ArrayList 的元素復(fù)制到新的指定元素類型數(shù)組中。 |
ArrayList元素的添加
private void btnAdd_Click(object sender, EventArgs e)
{
ArrayList array = new ArrayList();
array.Add(1);
array.Add("張飛");
array.Add(10.4f);
string[] ary1 = { "hello", "world" };
array.AddRange(ary1);
foreach (var item in array)
{
MessageBox.Show(item.ToString());
}
}
ArrayList元素的刪除
private void btnDelete_Click(object sender, EventArgs e)
{
array.RemoveAt(2);
array.Remove("張飛");//用于移除指定元素值的第一個(gè)匹配集合元素
foreach (var item in array)
{
MessageBox.Show(item.ToString());
}
array.RemoveRange(1, 2);//從1開始,刪除2個(gè)元素
array.Clear();//刪除所有
}
ArrayList元素的查找
private void btnSearch_Click(object sender, EventArgs e)
{
int idx = array.IndexOf(txtSearch.Text);
MessageBox.Show(idx.ToString());
idx = array.LastIndexOf(txtSearch.Text);
MessageBox.Show(idx.ToString());
}
是否包括:
var ret = array.Contains(10.4f);
MessageBox.Show(ret.ToString());
該文章在 2024/2/8 10:55:22 編輯過(guò)