OneBigLoser
OneBigLoser
发布于 2024-07-15 / 13 阅读
0
0

ArrayList 的解释、与array的区别

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];
  • 删除元素:使用 RemoveRemoveAt 方法删除元素。

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);

练习题目

基础题目

  1. 创建一个 ArrayList,添加你的五门课程的成绩,然后计算平均分。

  2. 使用 ArrayList 存储一系列日期,然后找出最早的日期。

更有难度的题目

  1. 编写一个函数,接收一个 ArrayList,该 ArrayList 包含不同类型的数据,函数的任务是返回一个新的 ArrayList,只包含其中的数字类型数据。

  2. 创建一个 ArrayList,模拟一个简单的购物车系统。包括添加、删除商品的功能,并计算总价格。


评论