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. LCD编程_画点线圆

    上篇博客中进行了lcd的简单测试,这篇博客将进行更加复杂的测试——画点.画线.画圆.画线和画圆是在画点的基础上实现的,因此本篇博客重点实现画点操作. 先抛出这样的一个问题,已知: (x,y)的坐标: ...

  2. spring boot 程序启动缓慢的问题(二)

    今天发现一台服务器上的springboot程序启动特别慢,完全启动起来用了有好几分钟.刚开始以为是代码写的有问题造成了卡死,直到看到这条log: 2017-03-08 10:06:49.600 INF ...

  3. html--前端基本标签内容讲解

    body里面分为两类标签:块级标签和内联标签. 1.块级标签:<p><h1><table><ol><ul><form><d ...

  4. Ql004(母牛的故事)

    一,看题目 1,这个虽然我不想说,但是我确实不会,但是我的意思是你可以不会但是不能每次都不会那咋办? 二,看题解 1,你得大概知道这个东西是考啥的(虽然这个东西提前给你说了是d递归),但是考试肯定没人 ...

  5. Pandas | 04 Panel 面板

    面板(Panel)是3D容器的数据.面板数据一词来源于计量经济学,部分源于名称:Pandas - pan(el)-da(ta)-s. 3轴(axis)这个名称旨在给出描述涉及面板数据的操作的一些语义. ...

  6. Generating YouTube-like IDs in Postgres using PL/V8 and Hashids

    转自:https://blog.abevoelker.com/2017-01-03/generating-youtube-like-ids-in-postgres-using-plv8-and-has ...

  7. js中的new操作符解析

    new 操作符做了以下事情: 1.创建一个对象,将对象赋值给this function Person(name, age) { console.log(this) //Person {} } let ...

  8. nginx 配置状态监控

    Nginx有内置一个状态页,需要在编译的时候指定参数--with-http_stub_status_module参数方可打开.也就是说,该功能是由http_stub_status_module模块提供 ...

  9. vb.net 以读文本文件的方式对XML文件进行遍历

    '    对XML文件按照文本文件的方式进行遍历 Private Sub checkFile_establishEntity(strFile As String) Dim reader AsTextR ...

  10. 运维-安装rabbitmq 集群

    服务器:   online-platform-rabbitmq-01 online-platform-rabbitmq-02 online-platform-rabbitmq-03 绑定HOSTS: ...