List集合类和ArrayList集合类都是C#语言中用于存储集合数据的集合类,两者都可灵活的插入、删除以及访问元素等等。但List集合和ArrayList集合的差别还是挺大的,首先List集合类是泛型集合,List集合中存储的数据的类型都是确定的。ArrayList集合类为非泛型类集合,集合中存储的元素未做详细的限定,只要能转换为object类型的变量都可往ArrayList集合类对象中存储,因此ArrayList集合类是类型不安全的,在实际运行过程中可能出现因为类型转换错误导致的运行时错误。

一、List集合和ArrayList集合的相同点

(1)两者都是为集合类,可以存储批量的集合数据

(2)两者都可以灵活地插入、删除、访问元素等操作。

(3)两者长度都是非固定的,集合类内部通过添加或删除元素就可以动态改变数组长度。

二、List集合和ArrayList集合的不同点

(1)List集合为泛型集合,集合中存储的数据类型是固定的。ArrayList集合为非泛型集合,集合中存储的类型为object类型,多种不同的数据类型都可同时新增到一个ArrayList集合变量中。

(2)如果往List集合中新增非泛型指定的类型对象的时候,List集合会直接抛出编译时异常,无法编译通过。而ArrayList集合则是任何数据类型对象都可往里写入。

(3)List集合是类型安全的,从List集合中取出来的数据肯定是确定的类型。而ArrayList集合为非类型安全集合,在ArrayList集合元素新增以及类型转换的时候一定要自行做好数据的校验,否则可能出现程序运行时错误,例如ArrayList集合变量中既存储Int类型数据,又存储String类型数据,如果未做数据校验,在程序中直接使用Convert.ToInt32将集合元素转为Int的话,程序在编译时不会报错,但在程序运行过程中可能会出现字符串无法转换而抛出运行时异常。

(4)List集合的速度比ArrayList集合速度快。

备注:原文转载自博主个人站IT技术小趣屋,原文链接为C#中ArrayList集合类和List集合类的比较_IT技术小趣屋

博主个人技术交流群:960640092,博主微信公众号如下:

【转载】C#中ArrayList集合类和List集合类的比较的更多相关文章

  1. 【转载】C#中ArrayList集合类使用Remove方法指定元素对象

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,在Array ...

  2. 【转载】C#中ArrayList集合类使用Add方法添加元素

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,因此使用Ar ...

  3. 【转载】C#中ArrayList集合类使用RemoveAt方法移除指定索引的元素

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,在Array ...

  4. 【转载】 C#中ArrayList集合类的使用

    在C#的集合操作过程中,我们一般常用的集合类为List集合,List集合是一种强类型的泛型集合,其实还有一个ArrayList集合类,ArrayList集合类则非泛型类的集合,并且ArrayList集 ...

  5. 集合框架的类和接口均在java.util包中。 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。

    集合框架的类和接口均在java.util包中. 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换.

  6. 【转载】C#中ArrayList使用RemoveRange移除一整段数据

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,如果需要移除ArrayList集合中指定索引位置开始的一整段元素对象,则可以使用ArrayList集合中的RemoveRange方法 ...

  7. 【转载】 C#中ArrayList使用ToArray方法转换为数组

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,可以使用ArrayList中的ToArray方法将ArrayList集合对象转换为数组,ToArray方法有2个重载形式,其一为vi ...

  8. 【转载】 C#中ArrayList使用GetRange方法获取某一段集合数据

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,可以使用GetRange方法来获取集合中指定索引位置开始的一整段集合数据组成一个新的集合,GetRange方法的签名为virtual ...

  9. Java中ArrayList源码分析

    一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保 ...

随机推荐

  1. 201871010101-陈来弟《面向对象程序设计(java)》第四周学习总结

                                                                                                        ...

  2. 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  3. Anaconda3(0)环境基本使用

    https://blog.csdn.net/u012005313/article/details/82347817 主要内容: 查看环境列表 创建新的 Python 环境 激活/停止 Python 环 ...

  4. Affy包 estrogen包

    下载安装 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocMana ...

  5. SUSE12.2 编译usbutils

    折腾了两天,终于交叉编译出来lsusb命令可以在单板上跑起来,记录一下 1:编译eudev下载地址:https://dev.gentoo.org/~blueness/eudev/,版本eudev-3. ...

  6. 常用STL使用指北

    常用STL使用指北 set和multiset set和multiset都是基于红黑树(显然是一个二叉搜索树)的STL. 定义 我们可以使用(multi)set<元素类型>名称来定义一个(m ...

  7. Android Studio 之 控件基础知识

    1. TextView 和 EditText 控件常用属性  android:layout_width="match_parent" 宽度与父控件一样宽 android:layou ...

  8. java web开发入门二(struts)基于eclispe

    JavaBean JavaBean,  咖啡豆. JavaBean是一种开发规范,可以说是一种技术. JavaBean就是一个普通的java类.只有符合以下规定才能称之为javabean: 1)必须提 ...

  9. Spring Boot 《一》开发一个“HelloWorld”的 web 应用

    一,Spring Boot 介绍 Spring Boot不是一个新的框架,默认配置了多种框架使用方式,使用SpringBoot很容易创建一个独立运行(运行jar,内嵌Servlet).准生产级别的基于 ...

  10. python 列出当前目录下的所有文件和目录名

    >>> import os # 导入os模块,模块的概念后面讲到 >>> [d for d in os.listdir('.')] # os.listdir可以列出 ...