List与ArrayList的区别

1.List因为指定了类型所以不存在装箱与拆箱的问题;ArrayList是先将类型转为object类型(装箱)才能插入到集合里,然后读取时再转为相对应的类型(拆箱)

2.list只能存储同一种类型的数据;ArrayList可以存储多种不同的数据类型

3.list因为不需要装箱和拆箱,所以效率高;ArrayList效率低

4.List在使用时候需要导入的using指令为using System.Collections.Generic;ArrayList在使用的时候需要导入的using指令为using System.Collections;

5.List属于泛型集合 ArrayList属于非泛型集合

6.ArrayList存在类型安全问题,开发中能不用就不用

例子

List:

var list = new List<int>();

list.Add(100);
//list.Add("100");//无法进行类型转换
var num = list[0];
foreach (var item in list)
{
     Console.WriteLine(item);
}
Console.ReadLine();

ArrayList:

var list = new ArrayList();

list.Add(100);//装箱
list.Add("100");//装箱
int num = (int)list[0];//拆箱--不进行强制转换,返回的是object类型
foreach (var item in list)
{
    Console.WriteLine(item);
}
Console.ReadLine();

ArrayList类型安全:

var list = new ArrayList();

list.Add(100);
list.Add("string");

list.Add(new MyClass());//添加对象

foreach (int item in list)
{
    Console.WriteLine(item);
}
Console.ReadLine();

集合中的元素无法都强制转为int,所以会抛出错误

而在泛型类List<T>中T定义了类型,所以是不能添加其它类型的数据的,保证了类型安全

转载于:https://www.cnblogs.com/ycywyy/p/10916813.html

C#基础List与ArrayList相关推荐

  1. java arraylist add时默认调用tostring_Java基础知识之ArrayList知识点总结

    本文包含常见的ArrayList的基本知识.在一些主题下也自然地引出了Colletion类的一些相关知识. 一.ArrayList的底层数据结构 ArrayList底层是使用一个Object[]数组来 ...

  2. java基础问题集锦一

    java基础知识: ArrayList与LinkedList的区别以及底层实现原理  ArrayList add操作实现 扩容系数 HashMap与CouncurrentHashMap HashMap ...

  3. C#动态数组ArrayList介绍

    ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充. ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间. 下面,我们还是在S ...

  4. 数据结构基础和排序算法

    数据结构和算法 1. 数据结构 1.1 稀疏数组 这个简单 稀疏数组即二维数组中有大量为0或同一个无效值的时候,将其压缩为只有有效数据的稀疏数组,需要使用时将其读写出来转为二维数组. public c ...

  5. C#中的泛型 / 泛型类 / 数组、ArrayList和List三者的区别

    C#中数组.ArrayList和List三者的区别 在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的, ...

  6. 零基础JAVA——黑马程序员课程笔记

    视频地址:点击访问 (我这里开发工具有时候用eclipse有时候用IDEA,看每个人的习惯) (文中代码部分不会和老师讲的一模一样,因为我都是在看到老师给的案例后自己尝试写的,推荐大家这样做,可以帮助 ...

  7. 201521123091 《Java程序设计》第4周学习总结

    Java 第二周总结 第四周的作业. 目录 1.本章学习总结 2.Java Q&A 3.使用码云管理Java代码 4.PTA实验 1.本章学习总结 1.1 尝试使用思维导图总结有关继承的知识点 ...

  8. 大数据面试题及答案 汇总版

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/albg_boy/article/det ...

  9. 201521123017 《Java程序设计》第4周学习总结

    1. 本周学习总结 2. 书面作业 Q1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图)   Q2.面向对象设计(大作业1,非常重要) 2.1 将 ...

  10. js 中转换成list集合_程序员:java集合介绍-List,具说很详细,你不来看看?

    Java集合介绍 作为一个程序猿,Java集合类可以说是我们在工作中运用最多.最频繁的类.相比于数组(Array)来说,集合类的长度可变,更加方便开发. Java集合就像一个容器,可以存储任何类型的数 ...

最新文章

  1. Eureka 2.0 开源流产,真的对你影响很大吗?
  2. 实战mariadb-galera集群架构
  3. js的时间函数实现一个电子表
  4. 人才管理是什么意思_上海托管仓库外包仓库管理什么意思
  5. Docker 开发环境的滑坡
  6. python读取csv最后一行_python – 尝试使用seek()获取csv文件的最后一行时的AttributeError...
  7. python decimal 转 float_python教程之二python数学运算
  8. Directfb【01】 基础模块和基本运行机制介绍 -- 源码结构分析图
  9. iPhone 7 P适合什么系统?
  10. paip.XXListener is already configured监听器已经被配置的解决
  11. Fortran入门教程(六)——循环结构
  12. php令牌桶,令牌桶限频(TokenBucket)
  13. 基于transformer的车辆识别
  14. 如何压缩图片呢?这两种方法很管用
  15. 面试题:spring的循环依赖问题以及如何解决
  16. springBoot 修行之路1
  17. 【数据结构与算法】之深入解析“1比特与2比特字符”的求解思路与算法示例
  18. 微信公众号的类型和功能
  19. 帆软报表决策系统跨域登录
  20. spark程序消费kafka数据报错:java.lang.NoSuchMethodError: net.jpountz.util.Utils.checkRange([BII)V

热门文章

  1. OpenCV-特征提取与检测(04、亚像素级别角点检测)
  2. python ascii转字符串_Python将混合ASCII代码转换为字符串
  3. [原创]Linux系统启动过程分析
  4. c++如何快速写出get set_如何快速写出产品文案?(4大核心方法)
  5. 【web前端】table的border属性解析(内联样式表和内部样式表中的区别)
  6. hdoj2050折线分割平面(递推,找规律)
  7. linux手动注入网络数据_大多数企业网络无法处理大数据负载 | Linux 中国
  8. 小米3c虚拟服务器,小米路由器3C固件逆向与测评-新手向
  9. deepin mysql管理工具_[LINUX]DeepIn下基础开发环境搭建
  10. 3.1 广义线性模型 And XGBoost