数组、ArrayList、List三者的区别

注:学习笔记,用于翻看查找

一、 数组

优点:在内存中时连续的,速度较快,操作简单。

缺点:定义数组时要定义其长度,不是很灵活,过长过短都会造成问题。不方便进行数据的添加、插入和移除。

例如:int [] i=new int[2];

           i[0]=111;

           i[1]=123;//赋值

           i[1]=1234;//修改

二、集合ArrayList

优点:命名空间System.Collections下的一部分。大小是动态扩充与收缩的。在声明ArrayList对象时不需要指定它的长度。ArrayList继承了IList接口,可以很方便的进行数据的添加、插入和移除.

缺点:当向集合插入不同类型的数据后(ArrayList将数据当作object存储),在进行数据处理时容易出现类型不匹配的错误,使用时需要进行类型转换处理,存在装箱与拆箱操作,造成性能大量损耗的现象。

例如:ArrayList list = new ArrayList();

         list.Add(“aa”);

list.Add(11);

list[1] = 123;//修改

         移除list.Remove(123);

         list.RemoveAt(0);

三、泛型List

优点:与集合ArrayList类似且继承IList接口,在声明List集合时也要声明集合内部数据的对象类型,避免了装箱和拆箱的问题。

例如:List<int> list=new List<int>();

          list.Add(123);

          list[0]=111;//修改

          list.RemoveAt(0);//移除

如果list.Add(“abc”);//编译器就会报错,避免了类型安全问题与装箱拆箱的性能问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组在C#中是最早出现的。它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单。可以利用偏移地...
    ArimaKisho阅读 5,099评论 0 0
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,864评论 1 14
  • List:对付顺序的好帮手 List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象 Set:注重独...
    Java面试指南阅读 10,020评论 0 2
  • 装—— 假,只有自己知道 平生懂得很多道理 由于一些原因 没人理解你 世间万物,沧海桑田 你只是不起眼的一粒沙 一...
    狼抓住了披着羊皮的狼阅读 2,761评论 0 6
  • 第二天:太湖佳绝处 清晨的太湖,空气是那样的清新,远山近树苍翠葱茏。此时湖上吹过来的习习凉风,让我顿感神清气爽。迎...
    夕阳醉梦阅读 1,202评论 0 0