黑马程序员技术交流社区

标题: arraylist和array有什么主要的差别么 [打印本页]

作者: 赵贺景    时间: 2014-4-30 21:03
标题: arraylist和array有什么主要的差别么
arraylist和array的区别是什么?一个是动态数组 一个是数组,
这两者有什么区别.
又和int[]a=new a[x]这种数组有什么不同?
arraylist有哪些常用的用法,
以及用来处理什么类型的问题


作者: 许庭洲    时间: 2014-4-30 21:32
1. Array 可以具有多个维度,而 ArrayList 始终只是一维的;
2. ArrayList提供添加,插入或移除某一范围元素的方法;  在Array中,只能一次获取或设置一个元素的值。
作者: panwenbo1990    时间: 2014-5-1 15:54
那我补充点吧,因为arraylist里面存放的是object类型的数据,所以在执行数据存放操作的时候会经过装箱和拆箱,效率比较低,所以当所有的数据都是同一种类型的时候,建议使用List<T>泛型集合,这样效率会高很多
作者: 朝花夕拾_黑马    时间: 2014-5-1 21:27
  1. //<span style="color: rgb(255, 0, 0); font-size: large; line-height: 36px; ">是引用(class)类型:</span>  提供创建、操作、搜索和排序数组的方法,因而在公共语言运行时中用作所有数组的基类。
复制代码








作者: 朝花夕拾_黑马    时间: 2014-5-1 21:39

// 是引用类型:    提供创建、操作、搜索和排序数组的方法,因而在公共语言运行时中用作所有数组的基类。

public abstract class Array : ICloneable, IList, ICollection, IEnumerable,                        
                                         IStructuralComparable, IStructuralEquatable

  //是引用类型:使用大小可按需动态增加的数组实现 System.Collections.IList
                      接口。

public class ArrayList : IList, ICollection, IEnumerable, ICloneable

//int 是值类型
public struct Int32 : IComparable, IFormattable, IConvertible,
                             IComparable<int>, IEquatable<int>

ArrayList:可以看做是动态数组,Add、clear、contains、count
              、Remove等方法,可以放任何类型的数据,但数据放进去就不知道什么
                 类型了,所以不能防止非法类型数据的放入,将ArrayList返回给其他函
                 数,会令调用者很困惑。要区分变量返回类型和实际对象类型的区别。

Array:C#中的所有数组类型int[]、string[]等都是继承自Array类

而泛型List<T>,如List<int>,因为有申明类型时的约定,因此所有方法的参数,
                       返回值都是确定类型了







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2