博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
容器使用笔记(List篇)
阅读量:6883 次
发布时间:2019-06-27

本文共 2100 字,大约阅读时间需要 7 分钟。

         上一篇博客介绍了Dictionary,这篇博客介绍List的相关内容。

         C#中要存储一组数据。我们会想到数组Array,ArrayList,List这三个对象,当中,数组是最早出现的,我们就从数组開始吧。

         数组有非常多长处,数组的使用比較简单,而且数组在内存中是连续存储的。所以数据存取速度比較快。

        定义一个数组Array

        //定义、赋值

	    int[] intTest = new int[3];            intTest[0] = 1;            intTest[1] = 2;            intTest[2] = 3;            //改动            intTest[1] = 5;

       可是,数组有非常多缺陷,比方说,它的长度就是个大坑,我们在定义数组的时候必须指定数组长度,假设长度过长则浪费内存。假设过短。会编译错误,出现溢出现象,假如我们事先不知道数组的长度,那使用起来简直是坑爹。

而且,数据不能删除数据,要插入一条数据。也是相当的困难。

       针对数组的这些问题。C#推出了ArrayList。能够说,ArrayList完美的攻克了数组的种种缺陷。

ArrayList是System.Collections;命名空间下的集合类,我们在定义ArrayList时,不须要去指定它的长度,它的长度能够在执行时动态改变来满足实际须要。

         ArrayList继承了IList接口。能够方便的进行数据加入、改动、插入、删除操作。代码例如以下:

	    //定义、加入数据            ArrayList arrayList = new ArrayList();            arrayList.Add(1);            arrayList.Add(2);            arrayList.Add(3);            //改动            arrayList[0] = "5";            			//删除            arrayList.RemoveAt(0);            //插入数据            arrayList.Insert(0, 555);
          ArrayList
的存储结构是跟数组的存储结构同样,也是连续存储,所以数据查询和加入速度比較快,可是删除速度比較慢,由于连续存储的数据改变了当中的一个记录,就须要改变整个数组的索引,这个是比較麻烦的。

        ArrayList能够说非常好的攻克了数组的缺陷,可是它也不是完美的。大家细致观察上边的代码,会发现,我们给实例arrayList对象的第一个索引值是int类型的1,可是改动数据时,我们改成了string类型的5,也就是说。arrayList 这个对象中,既有int类型数据。也包含string类型数据。那我们在使用的时候,岂不是每次都要去推断呢?假如,我们又多加入了几种类型呢?程序肯定会报错。

假如说。我们就是在程序中做了无数的推断,但是系统中装箱、拆箱的操作也能把人折磨死,而且,对内存是一种极大的消耗。

         C#2.0泛型的出现。非常好的攻克了这个问题。ArrayList的类型安全为程序带来了极大的隐患,List要求在定义的时候必须给出明白的数据类型,所以,List是强类型的集合,而且,泛型的出现。避免了数据交换和存储时装箱和拆箱的操作,极大的降低了内存的损耗。它的使用方法和arrayList基本同样。代码例如以下:

	    //定义、加入数据            List
listTest = new List
(); listTest.Add("a"); listTest.Add("b"); listTest.Add("c"); //改动 listTest[1] = "abc"; //移除 listTest.RemoveAt(0); //插入数据 listTest.Insert(0, "Hello World!");
         
总结:

数组:数组能够多维度的存储数据。在内存中已顺序表结构存储,通过索引下表来查找数据,查询效率高。数据操作方便。可是,长度固定,数据插入困难,假设须要以多维数据结构存储时推荐使用。

ArrayList:数组的强化版本号。长度可变化,内存中已顺序表结构存储,通过索引查找数据,查询效率高,继承了IList接口,数据操作简单。类型不安全。数据查询和存储时须要经过装箱和拆箱操作,内存浪费较大,不建议使用。

ListArrayList的泛型版本号。强类型数据集合,数据操作简单,内存中已链式存储结构存在,能够通过索引查询数据,查询效率较高,操作一般集合时建议使用。

转载地址:http://lfnbl.baihongyu.com/

你可能感兴趣的文章
C#中int,string,char[],char的转换(待续)
查看>>
wamp环境的安装
查看>>
BZOJ 4025: 二分图
查看>>
使用百度地图实现详细地址自动补全(补全bug''事件只能绑定到一个上的问题')...
查看>>
Emoji表情处理工具类
查看>>
刚刚考过dev401,出去玩了!有时间我把题目给大家贴出来。
查看>>
不等式解法训练题
查看>>
JavaScriptResult用法
查看>>
Hibernate(一)初始Hebirnate
查看>>
unity_ UI
查看>>
loj#6437. 「PKUSC2018」PKUSC(计算几何)
查看>>
CF1110G Tree-Tac-Toe(博弈论)
查看>>
iOS 百度地图大头针使用
查看>>
Linux 源码编译Python 3.6
查看>>
Hibernate-ORM:01.Hibernate恍如隔世般初见
查看>>
更新数据+获取行号+某行记录的地址+from字句
查看>>
goto,null
查看>>
the way of reading English books
查看>>
文本超出部分省略(包括多行文本超出部分省略显示)
查看>>
MongoDB数据库索引
查看>>