【转载】C#中ArrayList集合类和List集合类的比较
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集合类的比较的更多相关文章
- 【转载】C#中ArrayList集合类使用Remove方法指定元素对象
ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,在Array ...
- 【转载】C#中ArrayList集合类使用Add方法添加元素
ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,因此使用Ar ...
- 【转载】C#中ArrayList集合类使用RemoveAt方法移除指定索引的元素
ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,在Array ...
- 【转载】 C#中ArrayList集合类的使用
在C#的集合操作过程中,我们一般常用的集合类为List集合,List集合是一种强类型的泛型集合,其实还有一个ArrayList集合类,ArrayList集合类则非泛型类的集合,并且ArrayList集 ...
- 集合框架的类和接口均在java.util包中。 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。
集合框架的类和接口均在java.util包中. 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换.
- 【转载】C#中ArrayList使用RemoveRange移除一整段数据
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,如果需要移除ArrayList集合中指定索引位置开始的一整段元素对象,则可以使用ArrayList集合中的RemoveRange方法 ...
- 【转载】 C#中ArrayList使用ToArray方法转换为数组
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,可以使用ArrayList中的ToArray方法将ArrayList集合对象转换为数组,ToArray方法有2个重载形式,其一为vi ...
- 【转载】 C#中ArrayList使用GetRange方法获取某一段集合数据
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,可以使用GetRange方法来获取集合中指定索引位置开始的一整段集合数据组成一个新的集合,GetRange方法的签名为virtual ...
- Java中ArrayList源码分析
一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保 ...
随机推荐
- Samba应用案例
一.配置文件详解 Samba配置文件非常简洁明了,所有的设置都在 /etc/samba/smb.conf 配置文件中进行,通过对该配置文件的修改,可以将Samba配置为一台匿名文件服务器.基于账户的文 ...
- 01-C#笔记-hello_world
/* * 主文件是 xxx.cs * 基本的 hello world 程序如下: */ using System; using System.Collections.Generic; using Sy ...
- python基础之七:set 集合
集合(set)是一个无序的不重复元素序列.只可以存储不可变类型数据,即可哈希的数据类型,如:元组(tuple).字符(str).整型(int).布尔型(bool) 可以使用大括号 { } 或者 set ...
- PHP 多个字段自增或者自减
//自增$res=Db::name('accessories') ->where('id',$req['id']) ->inc('number',$req['number']) -> ...
- Pandas | 22 时间差
时间差(Timedelta)是时间上的差异,以不同的单位来表示.例如:日,小时,分钟,秒.它们可以是正值,也可以是负值.可以使用各种参数创建Timedelta对象,如下所示 - 字符串 通过传递字符串 ...
- Spring Security教程(四)
在前面三个博客的例子中,登陆页面都是用的Spring Security自己提供的,这明显不符合实际开发场景,同时也没有退出和注销按钮,因此在每次测试的时候都要通过关闭浏览器来注销达到清除session ...
- 【Gamma】项目展示
团队成员介绍 大娃 :后端开发人员,主要工作为后端开发,文档撰写. 大娃的个人博客 二娃 PM,主要工作为项目进度把控,例会博客撰写. 二娃的个人博客 三娃* PM,主要工作为项目进度把控,用户需求分 ...
- 聊一聊 JS 输出为 [object object] 是怎么回事?
聊一聊 JS 输出为 [object object] 是怎么回事? 今天在学习ES6中的 Symbol 数据类型时,在写demo时控制台输出为 Symbol[object object] ,当时有点疑 ...
- spring boot2X整合Consul一使用RestTemplate实现服务调用
Consul可以用于实现分布式系统的服务发现与配置 服务调用有两种方式: A.使用RestTemplate 进行服务调用 负载均衡——通过Ribbon注解RestTemplate B.使用Feign ...
- 快速搭建Linux-0.11实验环境
搭这个实验环境主要是为了学习Linux-0.11的代码,那就需要修改代码再次编译来验证自己的想法.主要的实验环境来自实验楼,但是在那上面毕竟不方便,所以就以实验楼上的为基础在自己的虚拟机上搭建一个环境 ...