Array和ArrayList有什么区别和联系吗?

xiamin 2009-02-27 03:41:15
Array和ArrayList有什么区别和联系吗?
...全文
593 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1098532190 2010-03-21
  • 打赏
  • 举报
回复
你们好啊 我 也想学asp。net。家我qq1425273371 4918411758
cwmwss 2009-02-28
  • 打赏
  • 举报
回复
学习
mzjmicrosoft 2009-02-27
  • 打赏
  • 举报
回复
3楼跟我copy的差不多....

但我觉得说的很好

关注 学习
mzjmicrosoft 2009-02-27
  • 打赏
  • 举报
回复

ArrayList 是数组的复杂版本。ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能。例如:
Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。如果更改了 ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制。
ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。
使用 Synchronized 方法可以很容易地创建 ArrayList 的同步版本。而 Array 将一直保持它直到用户实现同步为止。
ArrayList 提供将只读和固定大小包装返回到集合的方法。而 Array 不提供。
另一方面,Array 提供 ArrayList 所不具有的某些灵活性。例如:
可以设置 Array 的下限,但 ArrayList 的下限始终为零。
Array 可以具有多个维度,而 ArrayList 始终只是一维的。
特定类型(不包括 Object)的 Array 的性能比 ArrayList 好,这是因为 ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱。
要求一个数组的大多数情况也可以代之以使用 ArrayList。它更易于使用,并且通常具有与 Object 类型的数组类似的性能。
Array 位于 System 命名空间中;ArrayList 位于 System.Collections 命名空间中。

原文地址:http://wenda.tianya.cn/wenda/thread?tid=36f32c0fc9e387d7&clk=wttpcts
wuyq11 2009-02-27
  • 打赏
  • 举报
回复
Array的容量是固定的,而ArrayList的容量是根据需要自动扩展的。如果更改了arraylist.capacity属性的值,则自动进行内存重新分配额元素复制。
ArrayList提供添加,插入或移除某一范围元素的方法。在Array中,只能一次获取或设置一个元素的值。
使用Synchronized方法可以很容易地创建arraylist的同步版本。而array将一直保持它直到用户实现同步为止。
ArrayList提供将只读和固定大小包装返回到集合的方法,而array不提供。
array提供arraylist所不具有的某些灵活性。
可以设置array的下限,但arraylist的下限始终为零。
array可以具有多个维度,而arraylist始终只是一维的
http://www.cnblogs.com/jays2006/articles/427197.html
北京的雾霾天 2009-02-27
  • 打赏
  • 举报
回复
不太一样:

Array提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。
ArrayList使用大小可按需动态增加的数组实现 IList 接口。
CaongZaong 2009-02-27
  • 打赏
  • 举报
回复
ArrayList 的容量是该列表可包含的元素数。随着向 ArrayList 中添加元素,容量通过重新分配按需自动增加
ArrayList myAL = new ArrayList();
myAL.Add("Hello");
myAL.Add("World");
myAL.Add("!");

// Displays the properties and values of the ArrayList.
Console.WriteLine( "myAL" );

一个元素就是 Array 中的一个值。Array 的长度是它可包含的元素总数。Array 的秩是 Array 中的维数。Array 中维度的下限是 Array 中该维度的起始索引,多维 Array 的各个维度可以有不同的界限。

int[] myIntArray = new int[5] { 1, 2, 3, 4, 5 };
Object[] myObjArray = new Object[5] { 26, 27, 28, 29, 30 };

// Prints the initial values of both arrays.
Console.WriteLine( "Initially," );
Console.Write( "integer array:" );

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧