目錄
ArrayList的特點
ArrayList 與普通數組的區別
使用示例:????????普通數組????????動態數組
主要方法和屬性
????????屬性:?Count?獲取動態數組的數據個數
????????????????????讀取某個位置的數據 ?// 索引 ?
????????方法:?Add?向集合末尾添加元素
????????????????????Insert?在指定位置插入元素
????????????????????IndexOf 查找指定的數據 并返回索引
????????????????????Remove 移除指定的數據
????????????????????RemoveAt 刪除數組中指定索引位置的值
????????? ? ? ? ? ??RemoveRange 刪除數組中指定范圍內的數據 從0開始 刪除3個
????????? ? ? ? ? ??Reverse 反轉
????????? ? ? ? ? ??Sort 使用默認的排序方式進行排序
????????? ? ? ? ? ??Clear?清除列表 刪除動態數組中所有的數據 Count重置為0
????????? ? ? ? ? ??foreach遍歷動態數組
????????? ? ? ? ????Capacity?獲取或設置集合的容量
注意事項
在 C# 中,ArrayList
是System.Collections
命名空間下的一個動態數組類,它可以存儲不同類型的元素,并且能自動調整大小。以下是關于ArrayList
的詳細介紹和使用示例:
ArrayList
的特點
- 可以存儲任意數據類型的元素(包括值類型和引用類型)
- 大小會根據需要自動增長
- 提供了豐富的方法用于操作集合元素
- 屬于非泛型集合,在 C# 2.0 及以后版本中,推薦使用泛型的
List<T>
ArrayList 與普通數組的區別
特性 | 普通數組 | ArrayList |
---|---|---|
大小 | 固定,創建時指定 | 動態變化 |
方法 | 只有 length 屬性 | 提供豐富的操作方法 (add, remove 等) |
存儲類型 | 可以是基本類型或對象 | 只能存儲對象 (基本類型會自動裝箱) |
性能 | 初始大小固定時性能好 | 動態擴容時有性能開銷 |
使用示例
普通數組
int[] arr = { 1, 2, 3, 4 };
動態數組
動態數組(一個集合) 就是不固定長度和儲存的數據類型的數組;可以儲存任意類型的數據 并且長度會隨著數組內容的增加減少進行改變
ArrayList list1 = new ArrayList() {"張三","李四",12,20,true,'c' };
主要方法和屬性
- Add(): 向集合末尾添加元素
- Insert在指定位置插入元素
- Contains 查詢動態數組中是否存在某個數據
- GetRange?從動態數組中截取對應數據 返回形成新的動態數組
- IndexOf ():查找指定的數據 并返回索引
- Remove(): 刪除指定元素
- RemoveAt 刪除指定索引處的元素
- RemoveRange刪除數組中指定范圍內的數據
- Reverse 反轉
- Sort(): 使用默認的排序方式進行排序
- Clear(): 清空所有元素
- Count: 獲取當前元素數量
- Capacity: 獲取或設置集合的容量
屬性
Count?獲取動態數組的數據個數
Console.WriteLine("長度:" + list1.Count);
讀取某個位置的數據 ?// 索引 ?
Console.WriteLine(list1[5]);
方法
Add?向集合末尾添加元素
list1.Add(20);
list1.Add(arr);
Insert?在指定位置插入元素
list1.Insert(2, "小明");
list1.Insert(4, arr);
Contains?查詢動態數組中是否存在某個數據
Console.WriteLine(list1.Contains("張三"));//返回true
?GetRange 從動態數組中截取對應數據 返回形成新的動態數組
// 參數1:開始截取的位置
// 參數2:截取的個數
ArrayList li = list1.GetRange(0, 5);
IndexOf 查找指定的數據 并返回索引
Console.WriteLine(list1.IndexOf(20));
Remove 移除指定的數據
list1.Remove('c');
RemoveAt 刪除數組中指定索引位置的值
list1.RemoveAt(0);
RemoveRange 刪除數組中指定范圍內的數據 從0開始 刪除3個
list1.RemoveRange(0, 3);
Reverse 反轉
list1.Reverse();
Sort 使用默認的排序方式進行排序
list1.Sort();
Clear?清除列表 刪除動態數組中所有的數據 Count重置為0
list1.Clear();
foreach遍歷動態數組
foreach (var item in list1)
{Console.WriteLine(item);
}
Capacity?獲取或設置集合的容量
空的動態數組。長度起始為0,后期加入數據會自動擴大空間0->4->8->16->...->n*2
list1.Capacity = 0;
Console.WriteLine(list1.Capacity);長度起始為10,后期加入數據會自動擴大空間20->40->80->160->...->n*2
list1.Capacity = 10;
Console.WriteLine(list1.Capacity);
注意事項
ArrayList
存儲的是object
類型,因此值類型會發生裝箱操作,可能影響性能- 從
ArrayList
中獲取元素時需要進行顯式類型轉換 - 在.NET Framework 2.0 及以上版本中,建議使用泛型
List<T>
替代ArrayList
,因為List<T>
提供了類型安全和更好的性能
如果你需要類型安全且高性能的動態數組,應該優先考慮使用System.Collections.Generic
命名空間下的列表List<T>
。