ArrayList 的解释
在 .NET 中,ArrayList
是一个可以动态增长和缩小的数组。它是基于数组实现的,但提供了更加灵活的操作方式,如自动调整大小。ArrayList
属于 System.Collections
命名空间。
基本概念
ArrayList
存储的是 Object
类型的元素,这意味着它可以存储任何类型的数据。与数组相比,ArrayList
可以在运行时动态地增加和减少容量。
语法规则及声明方式
声明:使用
ArrayList
类来声明一个ArrayList
对象。
using System.Collections;
ArrayList myArrayList = new ArrayList();
添加元素:使用
Add
方法添加元素到ArrayList
。
myArrayList.Add(1);
myArrayList.Add("hello");
myArrayList.Add(new DateTime(2020, 1, 1));
访问元素:通过索引访问元素。
object firstElement = myArrayList[0];
删除元素:使用
Remove
或RemoveAt
方法删除元素。
myArrayList.Remove("hello"); // 删除第一个匹配的元素
myArrayList.RemoveAt(0); // 删除指定索引的元素
遍历元素:使用
foreach
循环遍历ArrayList
。
foreach (object item in myArrayList)
{
Console.WriteLine(item);
}
优点和缺点
优点:
灵活性:可以动态地添加和删除元素,不需要预先指定大小。
多类型:可以存储不同类型的数据。
缺点:
性能问题:由于存储的是
Object
类型,涉及到装箱和拆箱操作,可能会影响性能。类型安全:不是类型安全的,需要在使用时进行类型转换。
与 Array 的区别
固定大小:
Array
的大小是固定的,一旦创建,大小不能改变。而ArrayList
的大小是动态的,可以根据需要增加或减少。类型安全:
Array
是类型安全的,只能存储一种类型的元素。ArrayList
可以存储任何类型的对象。性能:
Array
在性能上通常优于ArrayList
,因为Array
不涉及装箱和拆箱操作。
示例代码
ArrayList list = new ArrayList();
list.Add(10); // 添加一个整数
list.Add("Hello World"); // 添加一个字符串
list.Add(DateTime.Now); // 添加一个日期时间对象
// 遍历 ArrayList
foreach (object item in list)
{
Console.WriteLine(item);
}
// 移除元素
list.Remove("Hello World");
// 输出剩余元素的数量
Console.WriteLine("Items in list: " + list.Count);
练习题目
基础题目
创建一个
ArrayList
,添加你的五门课程的成绩,然后计算平均分。使用
ArrayList
存储一系列日期,然后找出最早的日期。
更有难度的题目
编写一个函数,接收一个
ArrayList
,该ArrayList
包含不同类型的数据,函数的任务是返回一个新的ArrayList
,只包含其中的数字类型数据。创建一个
ArrayList
,模拟一个简单的购物车系统。包括添加、删除商品的功能,并计算总价格。