精华内容
下载资源
问答
  • Array Arraylist 区别

    2019-07-04 22:07:49
    有些知识点可能平时一直在使用,...数组、List和ArrayList区别:  数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如: string[] s=new string[3]; //赋值 s[0]=“a”; ...

    有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自己在工作之余的问题,持续更新,欢迎高手斧正.

    数组、List和ArrayList的区别:
      数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如:
    string[] s=new string[3];
    //赋值
    s[0]=“a”; s[1]=“b”; s[2]=“c”;
    //修改
    s[1]=“b1”;
      但是数组也存在一些不足的地方。比如在数组的两个数据间插入数据也是很麻烦的,还有我们在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。这样如果在声明数组时我们并不清楚数组的长度,就变的很麻烦了。C#中最先提供了ArrayList对象来克服这些缺点。
      ArrayList是.Net Framework提供的用于数据存储和检索的专用类,它是命名空间System.Collections下的一部分。它的大小是按照其中存储的数据来动态扩充与收缩的。所以,我们在声明ArrayList对象时并不需要指定它的长度。ArrayList继承了IList接口,所以它可以很方便的进行数据的添加,插入和移除.比如:
    复制代码
    ArrayList list = new ArrayList();
    //新增数据
    list.Add(“abc”); list.Add(123);
    //修改数据
    list[2] = 345;
    //移除数据
    list.RemoveAt(0);
    //插入数据
    list.Insert(0, “hello world”);
    复制代码
      从上面示例看,ArrayList好像是解决了数组中所有的缺点,那么它应该就是完美的了,为什么在C#2.0后又会出现List呢?
       在list中,我们不仅插入了字符串"abc",而且又插入了数字123。这样在ArrayList中插入不同类型的数据是允许的。因为ArrayList会把所有插入其中的数据都当作为object类型来处理。这样,在我们使用ArrayList中的数据来处理问题的时候,很可能会报类型不匹配的错误,也就是说ArrayList不是类型安全的。既使我们保证在插入数据的时候都很小心,都有插入了同一类型的数据,但在使用的时候,我们也需要将它们转化为对应的原类型来处理。这就存在了装箱与拆箱的操作,会带来很大的性能损耗。
      装箱与拆箱的概念: 简单的来讲: 装箱:就是将值类型的数据打包到引用类型的实例中 比如将int类型的值123赋给object对象o

    int i=123; object o=(object)i;

    拆箱:就是从引用数据中提取值类型 比如将object对象o的值赋给int类型的变量

    object o=123; int i=(int)o;

    装箱与拆箱的过程是很损耗性能的。
      正是因为ArrayList存在不安全类型与装箱拆箱的缺点,所以在C#2.0后出现了泛型的概念。而List类是ArrayList类的泛型等效类。它的大部分用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。 比如:

    复制代码
    List list = new List();
    //新增数据
    list.Add(123);
    //修改数据
    list[0] = 345;
    //移除数据
    list.RemoveAt(0);
    复制代码
      上例中,如果我们往List集合中插入string字符"hello world",IDE就会报错,且不能通过编译。这样就避免了前面讲的类型安全问题与装箱拆箱的性能问题了。

    同时 List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。

    List list; //正确 list=null;
    List list=new List(); // 是错误的用法
      List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。 而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

    List泛型的好处:
      通过允许指定泛型类或方法操作的特定类型,泛型功能将类型安全的任务从您转移给了编译器。不需要编写代码来检测数据类型是否正确,因为会在编译时强制使用正确的数据类型。减少了类型强制转换的需要和运行时错误的可能性。泛型提供了类型安全但没有增加多个实现的开销。
    参考
    Array, ArrayList之间的转换,( arraylist.toArray() , Arrays.asList( arr ) ArrayList arrlist = new ArrayList();
      arrlist.add(“2223”);
      arrlist.add(“eeeeee”);
    arrlist.toArray();
    List list=Arrays.asList(array);

    展开全文
  • 2.array 数组在内存中是一段连续的地址,且大小在生成时必须指定大小,且里面的类型必须全部保持一致。 3.arraylist 是list接口的实现类,但是在new时可以不指定数组大小,默认大小为10,超出容量后 ,扩大到2倍。...

    1.在java中,list是个接口,不能直接new,只能用它的子类来指向它。

    2.array  数组在内存中是一段连续的地址,且大小在生成时必须指定大小,且里面的类型必须全部保持一致。

    3.arraylist 是list接口的实现类,但是在new时可以不指定数组大小,默认大小为10,超出容量后 ,扩大到2倍。如果不使用泛型类声明Arraylist,那么在arraylist可以放不同的类型,如:ArrayList  list=new ArrayList();这样是类型不安全的。

    ArrayList里面的默认类型是Object,如果是引用类型,就需要强转,如果是值类型,如:int i=2;这种类型,就需要装箱和拆箱,这样会有性能的消耗。

    当使用list的时候,推荐使用泛型 如List<String> list=new ArrayList<String>;这样就不存在类型不一致的问题。

    展开全文
  • C# ArrayArrayList区别 C# ArrayArrayList区别 一,C# array数组的用法范例: type[] typename=new type[size]; 如int[] a=new int[2];string[] str=new string[5]; 实事上我们平常是...

    C# Array和ArrayList区别 C# Array和ArrayList区别

    一,C# array数组的用法范例:
    type[] typename=new type[size];
    如int[] a=new int[2];string[] str=new string[5];
    实事上我们平常是用int[],string[]...的,此时我们已经创建一个Array数组,只不过我们平常没有这种意识而已.
    (1):type数据类型不能缺;且要统一,而不能是如 int[] a=new Array[];
    (2):数组的大小size不能缺,否则c#认为是出错的,因为数组是一段固定长度的内存;
    (3):右边是一个中括号[],而不是()
    实例:

    //Array ar = new Array();//错误,无法创建抽象类或接口“System.Array”的实例
    //int[] array = new Array[3];错误,
    //int[] array = new Array[];错误,必须指定数组的大小或初始值
    //int[] array = new Array[3];//错误,无法转换为int[]
    //int[] array=new int[];//错误,必须指定数组的大小或初始值
    //平常我们int[],string[]...事实上就是声明一个array数组了

    int[] array = new int[5];
    //或int[] arr={1,2,3};
    for (int i = 0; i < 5; i++)
    {
    array[i] = i*100;//注:array数组并不提供add,clear,addRange..方法,而是直接设置或获取值
    Response.Write(array[i] + "<br>");
    }
    Response.Write(array.Length + "<br><br>");


    int [] intarray=new int[9];
    intarray[0]=10;
    intarray[1]=20;
    intarray[2]=30;
    intarray[3]=40;
    intarray[4]=50;
    intarray[5]=60;
    intarray[6]=70;
    intarray[7]=80;
    intarray[8]=90;

    二,C# ArrayList数组的用法范例:
    ArrayList al = new ArrayList();
    for (int i = 0; i < 3; i++)
    {
    al.Add(i);
    Response.Write(al[i].ToString() + "<br>");//输出数组中的元素值
    // Response.Write(al[i]+ "<br>");
    }
    Response.Write(al.Count + "<br><br>");
    foreach (int obj in al)//或foreach (object obj in al),因为al是一个object类型的数组
    {
    Response.Write(obj+"-OK"+"<br>");
    }

    三,ArrayList和Array相互之间的转化
    (1)以下是把ArrayList数组中的值拷贝到Array中去的实例用法
    //int[] IResult=new int[al.Count];
    //al.CopyTo(IResult);
    //或是用下面的方法
    int[] IResult = (int[])al.ToArray(typeof(Int32));//ToArray(Int32);这样错误,一定要强制类型转换
    //Person[] personArrayFromList = (Person[])personList.ToArray(typeof(Person));
    foreach(int item in IResult)
    {
    Response.Write(item.ToString());
    }

    Response.Write("以下是把Array数组中的值拷贝到ArrayList中去的实例用法" + "<br>" + "结果为:<br>");
    int[] a ={ 222, 333, 555 };
    ArrayList arrList = new ArrayList();
    foreach (object obj in a)//或foreach (int obj in a)
    {
    arrList.Add(obj);
    Response.Write(obj+"<br>");

    展开全文
  • 主要介绍了Java ArrayArrayList区别详解的相关资料,需要的朋友可以参考下
  • ArrayArrayList区别

    2017-04-05 11:51:34
    ArrayArrayList区别  Array  在C#中的数组也是对象,实际上是Array类的实例。  主要区别  Array类型的变量在声明的同时,必须进行实例化,至少是初始化数组的大小,而 ArrayList可以只先声明。  Array...

    Array和ArrayList区别


              Array

              在C#中的数组也是对象,实际上是Array类的实例。


              主要区别

              Array类型的变量在声明的同时,必须进行实例化,至少是初始化数组的大小,而 ArrayList可以只先声明。


              Array只能存储同构的对象,而ArrayList可以存储异构的对象。

              同构的对象是指类型相同的对象,如果声明为int[]型的数组,则只能存放整型数据,string[]只能存放字符型数据,但是,声明为Object[]的数组除外。

              ArrayList可以存放任何不同类型的数据,因为,它里面存放的都是被装箱了的Object型对象,实际上,ArrayList内部就是使用Object[]_items,这样一个私有字段来封装对象的。


              Array是始终连续存放的。

              ArrayList的存放不一定是连续的。


              Array对象是初始化必须只指定大小、且创建后的数组大小是固定的。

              ArrayList的大小可以动态指定,其大小可以在初始时指定,也可以不指定,也就是该对象的空间可以任意增加。


              Array不能够随意添加或删除其中的项。

              ArrayList可以在任意位置插入和删除项。


    展开全文
  • Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。 ②Array大小是固定的,ArrayList的大小是动态变化的。 ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。 ...
  • java中ArrayArrayList区别

    万次阅读 2018-09-16 10:14:29
    java中ArrayArrayList区别 1)精辟阐述: 可以将 ArrayList想象成一种“会自动扩增容量的Array”。 2)Array([]):最高效;但是其容量固定且无法动态改变;  ArrayList: 容量可动态增长;但牺牲效率; 3)...
  • ArrayArrayList区别

    2010-11-16 22:19:00
    [ArrayArrayList区别]#1. Array类型的变量在声明的同时必须进行实例化(至少得初始化数组的大小),而ArrayList可以只是先声明。如: int[] array = new array[3]; 或 int[] array = {1,2,3}; 或 ArrayList ...
  • C# ArrayArrayList区别

    2012-12-19 23:34:29
    C# ArrayArrayList区别 收藏 一,C# array数组的用法范例: type[] typename=new type[size];  如int[] a=new int[2];string[] str=new string[5]; 实事上我们平常是用int[],string[]...的,此时我们已经创建...
  • ArrayArrayList、LinkList之间的区别ArrayArrayList、LinkList均属于泛型的范畴,都用来存放元素,主要区别Array是一个固定大小的容器,底层采用的是线性连续空间来存放元素,ArrayList同样也是一个容器,...
  • ArrayArrayList、LinkList之间的区别ArrayArrayList、LinkList均属于泛型的范畴,都用来存放元素,主要区别Array是一个固定大小的容器,底层采用的是线性连续空间来存放元素,ArrayList同样也是一个容器,...
  • C# ArrayArrayList区别 收藏 一,C# array数组的用法范例: type[] typename=new type[size];  如int[] a=new int[2];string[] str=new string[5]; 实事上我们平常是用int[],string[]...的,此时我们已经创建一...
  • ylbtech-Java-杂项: Java中ArrayArrayList区别 1.返回顶部 1、 1)精辟阐述:可以将ArrayList想象成一种“会自动扩增容量的Array”。2)Array([]):最高效;但是其容量固定且无法...
  • 首先本质区别 array : 数组,他是本地的数据结构 arrayList: 他是java中的一个集合类,既然是类,那么就可以去创建他的对象,然后去使用他...arrayList: 他是集合,内部可以自动的进行扩容,所以说他比array更加...
  • java中ArrayArrayList区别 1)精辟阐述: 可以将ArrayList想象成一种“会自动扩增容量的Array ...depth_1-utm_source=distribute..
  • java中array,arrayList区别

    千次阅读 2018-03-11 19:03:32
    1.Java中的数组1.数组在内存中是连续存储的,索引速度非常快,赋值和修改元素比较简单;2.声明数组的时候,必须制定数组的长度,数组的长度过长,会内存浪费,过短会数据溢出的错误;...ArrayList ...
  • ArrayArrayList区别

    千次阅读 2019-05-06 11:38:33
    ArrayArrayList 有何区别Array 即数组,声明方式可以如下: int[] array = new int[3]; int array [] = new int[3]; int[] array = {1, 2, 3}; int[] array = new int[]{1, 2, 3}; 定义一个 Array 时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,145
精华内容 458
关键字:

arrayarraylist区别