ArrayList集合类在System.Colletions命名空间下,它其实是一个特殊的数组,它可以动态的添加和删除元素,根据元素的改变自动决定它自身的大小,也可以灵活的插入元素等操作,使用起来要比一般的数组方便很多个人感觉,而且可以用来储存任何引用和值类型,如下面举个例子:

C#:

ArrayList arr = new ArrayList();

arr.Add(123);

arr.Add(567);

arr.Add("windows");

//ArrayList的默认索引为0

//我要在索引为1的位置插入一个元素

arr.Insert("XP");

arr.Remove(567) //移除元素567

下面是ArrayList类的一些常用属性和方法:

1.常用属性

Count获取数组的实际元素个数。

Item 获取和设置指定索引处元素,这个属性在VB.NET使用,在C#中时用[]代替。

2.常用方法

Add方法:将某一元素添加到动态数组的尾部

Remove方法:从动态数组中移除指定元素。

RemoveAt方法:从动态数组中移除指定索引处元素。

Clear方法:删除所有元素。

IndexOf方法:在动态数组中查找某个元素的索引。

Insert方法:将元素插入指定索引处。

Reverse方法:反转元素排序。

Sort方法:对元素进行排序。

ToArray方法:将动态数组中的所有元素复制到新数组中。

Contains方法:确定某个元素是否存在。

ArrayList虽然使用很方便灵活,但是添加给它的任何引用类型和值类型都将隐式的被转换为Object(即装箱操作),而在使用元素时要进行拆箱操作,否则会出现编译错误的情况,这样很麻烦,所以就有另外一个和它比较相似的类,List<T>泛型类,List<T>泛型类位于System.Colletions.Generit下,List<T>泛型比ArrayList方便之处就是它避免了重复装箱拆箱的操作,当它声明时将强制性的指定一个非Object类型,相对能较好的保证代码的安全性,它的使用和ArrayList类似。

C#:

List<int> a = new List<int>();

a.Add(1);

a.Add(2);

a.Add(3);

ArrayList 类和List<T>泛型类的区别

•List<T>类是 ArrayList 类的泛型等效类
•List<T>类的类型 T 使用引用类型,则两个类的行为是完全相同的
•如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List<T>类的实现。 这意味着不必对 List<T>对象的列表元素进行装箱就可以使用该元素,并且在创建大约 500 个列表元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。

ArrayList 类和List<T>泛型类的更多相关文章

  1. 集合 ArrayList 类

    集合的基本信息: System.Collections   系统类中的收藏类,定义各种对象(如列表,队列,位数组,哈希表和字典)的集合 常用的集合为ArrayList类:特殊集合一般会用到Queue队 ...

  2. Java API —— ArrayList类 & Vector类 & LinkList类

    1.ArrayList类     1)ArrayList类概述         · 底层数据结构是数组,查询快,增删慢         · 线程不安全,效率高     2)ArrayList案例   ...

  3. C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)

    1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在ArrayList中主要使用Add.Remove.RemoveAt.Insert四个方法对栈进行操作.Add方法 ...

  4. Java中ArrayList类详解

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  5. 表的顺序结构---重写Arraylist类

    重写ArrayList类,为防止冲突,重写为MyArrayList,未继承Iterable类. public class MyArrayList<AnyType>{ int N=10; A ...

  6. JDK1.8源码(五)——java.util.ArrayList 类

    关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实 ...

  7. LinkedList类 和ArrayList类

    1)LinkedList类  LinkedList实现了List接口,允许null元素.此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部.这 ...

  8. 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10

    1.首先自定义一个Operate接口,如下所示: public interface Operate { public Integer caozuo(Integer i); } 2.实现自定义的Arra ...

  9. java基础之集合框架--使用ArrayList类动态 存储数据

    一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...

随机推荐

  1. 5个提升Google Chrome浏览器运行速度的技巧

    尽管有无数个喜欢Google Chrome  浏览器的理由,其中就包括,Chrome已经够快了,但Google Chrome的内存占用而导致的速度拖累还是广受诟病,这种弊端在windows下尤为明显, ...

  2. android工程混淆和反编译

    一.工程文件的混淆 混淆文件下载:http://download.csdn.net/detail/lxq_xsyu/6328751 1.在根目录下添加progard.cfg文件 2.打开project ...

  3. 实例模拟struts核心流程

    Struts,经典框架之一,每个java  web 开发人员都应该晓得它的大名.这里,我就用一个简单实例来模拟一下struts的核心流程.具体实例如下: 主界面: 点击提交后,程序根据具体的actio ...

  4. 数据结构(主席树):HZOI 2016 采花

    [题目描述] 给定一个长度为n,包含c种颜色的序列,有m个询问,每次给出两个数l,r,表示询问区间[l,r]中有多少种颜色的出现次数不少于2次. 本题强制在线,对输入的l,r进行了加密,解密方法为: ...

  5. 实现DataGridView实时更新数据

    ;).ToString() + ).ToString() + "秒";        } }}

  6. Two kinds of Quaternion SlerpImp (Unity)

    using UnityEngine;using System.Collections; public class SlerpImp{ static float Dot(Quaternion a, Qu ...

  7. vijosP1046 观光旅游(最小环)

    vijosP1046 观光旅游 链接:https://vijos.org/p/1046 [思路] Floyd求解最小环. [代码] #include<iostream> using nam ...

  8. Bzoj 2818: Gcd 莫比乌斯,分块,欧拉函数,线性筛

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 3241  Solved: 1437[Submit][Status][Discuss ...

  9. 【转】关于android的输入法弹出来 覆盖输入框的有关问题

    今天发现一个问题,在录入信息页面.信息不多,但是输入法弹起后,内容已经超出页面,无滚动条,很不方便. 解决办法:在配置文件中,页面对应的Activity中添加 <activity android ...

  10. http://c7sky.com/works/css3slides/#1

    http://c7sky.com/works/css3slides/#1 css3 学习