Array、ArrayList和List的区别是什么?

本文关键字:区别 是什么 List ArrayList Array | 更新日期: 2023-09-27 18:08:06

我想知道ArrayArrayListList(因为它们都有类似的概念)之间的确切区别是什么,以及您将在哪里使用一个。

例子:


对于数组,只能添加本例中声明的类型int

int[] Array = new Int[5]; //Instansiation of an array
for(int i = 0; i < Array.Length; i++)
{
   Array[i] = i + 5; //Add values to each array index
}

ArrayList
我们可以像Array

那样添加值
ArrayList arrayList = new ArrayList();
arrayList.Add(6);
arrayList.Add(8);


我们可以像在Array中那样添加值

List<int> list = new List<int>();
list.Add(6);
List.Add(8);

我知道在List中你可以有泛型类型所以你可以传递任何你不能在Array中做的类型但我的确切问题是:

  • 你会在哪里使用其中一个而不是另一个?
  • 三者在功能上的确切区别是什么?

Array、ArrayList和List的区别是什么?

它们是不同的对象类型。它们有不同的功能,以不同的方式存储数据。

Array (System.Array)一旦被分配,它的大小是固定的。您不能向其中添加项目或从中删除项目。此外,所有元素必须是相同的类型。因此,它是类型安全的,并且在内存和性能方面也是三者中效率最高的。同时,系统。Array支持多维(即它有一个Rank属性),而List和ArrayList不支持(尽管你可以创建列表的列表或数组列表的数组列表,如果你想的话)。

ArrayList是一个包含对象列表的灵活数组。您可以添加和删除项目,它会自动处理分配空间。如果您将值类型存储在其中,则它们是盒装和非盒装的,这可能会有点低效。而且,它不是类型安全的。

A List<>利用泛型;它本质上是ArrayList的类型安全版本。这意味着没有装箱或拆箱(这提高了性能),如果您试图添加错误类型的项,它将生成编译时错误。