一、数组的优劣势
1、优势
- 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单。
2、劣势
-
在数组的两个数据间插入数据很麻烦。
-
在声明数组的时候, 必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。
二、集合:类似数组,都用于存放一组值
三、ArrayList集合
ArrayList
是.NET Framework提供的用于数据存储和检索的专用类- 它是命名空间
System.Collections
下的一部分
1、ArrayList
的优势
ArrayList
的大小是按照其中存储的数据来动态扩充与收缩的- 在声明
ArrayList
对象时并不需要指定它的长度 ArrayList
可以很方便的进行数据的添加,插入和移除
2、举例
在两个数值之间用insert插入新的值。
四、List集合
1、为什么要使用List?——ArrayList的劣势:不安全类型、装箱拆箱
(1)ArrayList 存储数据时使用object类型进行存储的。
object类是所有类(int类、string类、自己写的类等)的父类,父类可以接受子类的数据,子类不能接受父类的数据【有容乃大,博大的父爱】。
(2)ArrayList 不是类型安全的,使用时很可能会出现类型不匹配的错误。
因为ArrayList是Object类型,所以当子类变成父类后,它就直接从他现有的类型变成了object。那么我们在使用时,这个object究竟是个什么类型系统就不知道了,所以使用时很可能会出现类型不匹配的错误。
(3)ArrayList 的存储存在 装箱和拆箱 操作,导致其性能低下。
就算都有插入了同一类型的数据,但在使用的时候,我们也需要将它们转化为对应的原类型来处理。
2、List集合的使用
(1)List集合的声明
(2)举例
(3)自己创建的类型可以限定List售合的数据举型
<1>法1:
<2>法2:下图中上面红框内的。更推荐使用。
1>注意:类每次new都是开辟一个新的内存地址,就算里面的内容一样但也不是一个东西。所以下面红框中的Remove认的是地址,想要删除里面得填person2,填person1删除无效。
2>更推荐的原因:如下图,下面红框里的可以直接赋值粘贴上面红框里的,这样添加数据更方便。