什么是数组,什么是ArrayList
?他们之间有什么区别?
答案 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 的区别如下:
答案 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),不会产生太大的差异,但是对于较大的数字,可能会导致性能降低。