数组和ArrayList有什么区别?

时间:2009-10-12 04:45:49

标签: .net arrays arraylist

什么是数组,什么是ArrayList?他们之间有什么区别?

7 个答案:

答案 0 :(得分:10)

数组是一种存储一组具有相同类型的数据的高性能方法,因为每个元素都布置在内存中它的邻居旁边。这允许非常快速的访问,因为(a)代码可以做一些数学运算并快速跳转到数组中的任何位置,并且(b)元素都被组合在一起,因此它们往往同时存在于内存中(更少)页面错误和缓存未命中)。 .NET中的数组实际上是一个类(System.Array),但是.NET引擎(CLR)很好理解的一种特殊类型的类。因此,您可以使用标准的数组访问表示法(text languages)等 foo [3] = 99;

但是,在 ArrayList 中,您正在处理集合。 .NET中有几种类型的集合(参见System.Collections和System.Collections.Specialized命名空间),但关键是它们支持的接口(IEnumerable,ICollections,IList等)。如果查看这些接口的定义,您会看到集合都是关于将事物分组在一起并提供访问它们的方法。但是,如果添加一个元素而不是内部数组可以处理的ArrayList,则ArrayList会自动创建一个更大的数组并将旧数组复制到新数组中。

答案 1 :(得分:1)

数组:类似数据类型的元素,大小有限。 arraylist:是一个能够储蓄的集合 不同的数据类型对象,并且可以增长。

答案 2 :(得分:1)

数组 ArrayList 的区别如下:

  1. 数组的实现是简单的固定大小的数组但是 ArrayList的实现是动态大小的数组。
  2. 数组可以包含基元和对象 ArrayList只能包含对象元素
  3. 您不能将泛型与数组一起使用,但 ArrayList允许我们使用泛型来确保类型安全。
  4. 您可以使用* length *变量来计算数组的长度 size()方法来计算ArrayList的大小。
  5. 数组使用赋值运算符来存储元素 ArrayList使用* add()*来插入元素。

答案 3 :(得分:0)

这对Java来说是对的吗?好吧,我在那里读到了 1. ArrayList是一个采用值/密钥对的集合数据类型。您需要使用.Add属性将值添加到arraylist集合中。您可以使用键访问arraylist。 2. Array是一种可以使用索引访问的数据类型。

答案 4 :(得分:0)

<强>阵列: 数组是固定长度的数据结构。 在Java中创建后,您无法更改Array的长度。 数组本质上是静态的。

Object[] objArray = new Object[10];

<强>的ArrayList: ArrayList是一个可变长度的Collection类。 根据容量和负载因子,ArrayList在满员时重新调整大小。 Arraylist本质上是动态的。

ArrayList<Integer> integerList = new ArrayList<Integer>();

答案 5 :(得分:0)

i, 数组 :数组是固定长度数据结构的静态大小,创建数组对象后无法更改长度。 Arraylist :ArrayList的大小是动态的。每个ArrayList对象都有实例变量capacity,表示ArrayList的大小。当元素添加到ArrayList时,其容量会自动增长。 2. 数组 :它只能包含Object,而Array可以包含原始数据类型和对象。   ArrayList :ArrayList不能包含原始数据类型(如int,float,double) 例如: ArrayList arraylistobject = new ArrayList(); arraylistobject.add(23); 3. 数组 :返回数组长度的length变量。 ArrayList :ArrayList的长度由size()方法提供,而每个数组对象都是。

答案 6 :(得分:0)

谈论内存优化-

阵列-最好将整个内存块存储在一个特定位置。

ArrayList -这有点低,因为如果arraylist的大小为100,并且我们需要再添加1个元素,它将搜索101的内存空间,然后分配新鲜的记忆。对于较小的数字(如100),不会产生太大的差异,但是对于较大的数字,可能会导致性能降低。