C#之 ArrayList概述

ArrayList 类相当于一种高级的动态数组. 是Array类的升级版本。

概述:

ArrayList 位于 System.Collections命名空间下

可以动态的删除和添加元素, 从某种意义上来讲, 他是数组的高级版, 但是并不等同于数组。

与数组相比, ArrayList 类提供了以下几个功能:

? ? 1. 数组的长度是固定的(一旦声明,不可更改, 超出将数组越界); ArrayList 的长度可以根据需要自动扩充。

? ? 2. ArrayList 提供了添加、删除、和插入某范围内元素的方法; 数组中仅能一次获取或设置一个元素的值。

? ? 3. ArrayList 提供将只读和固定大小包装并返回到集合的方法; 数组并未提供。

? ? 4. ArrayList 只能是一维形式; 而数组可以是多维的。

ArrayList 声明方式:

? ? ArrayList 提供了3个构造器, ?所对应的的是3种声明方式:

? ? [1]. 默认的构造器, 以默认的大小(16)来初始化内部的数组

? ? ? ? public ArrayList();

? ? ? ? 声明:

? ? ? ? ArrayList list = new ArrarList();

? ? ? ? 示例: (声明一个ArrayList 对象, 并添加10个int类型的元素)

? ? ? ? ArrayList arrayList = new ArrayList();

? ? ? ? for (int i = 0; i < 10; i++)

? ? ? ? {

? ? ? ? ? ? arrayList.Add(i);

? ? ? ? }

? ? [2]. 用一个ICollection 对象来构造, 并将该集合的元素添加到ArrayList中:

? ? ? ? public ArrayList(ICollection);

? ? ? ? 声明:

? ? ? ? ArrayList arrayList = new ArrayList(arrayName);?//arrayName: 要添加到ArrayList中的数组名

? ? ? ? 示例:(将一维int数组添加到ArrayList集合中)

? ? ? ? int[] array = new int[] {1,2,3,4,5,6,7};

? ? ? ? ArrayList arrayList = new ArrayList(array);

? ? [3]. 用指定的大小初始化内部的数组

? ? ? ? public ArrayList(int);

? ? ? ? 声明:

? ? ? ? ArrayList arrayList = new ArrayList(10);

? ? ? ? 示例:(声明长度为10的ArrayList集合, 并动态添加元素)

? ? ? ? ArrayList arrayList = new ArrayList(10);

? ? ? ? for (int i = 0; i < arrayList.Count; i++)

? ? ? ? {

? ? ? ? ? ??//arrayList.Count:
获取ArrayList对象的长度

? ? ? ? ? ? arrayList.Add(i);

? ? ? ? }

ArrayList 的常用属性:


属性


说明


Capacity


获取或者设置ArrayList可以达到的长度


Count


获取ArrayList对象实际的长度


IsFixedSize


bool, 指示ArrayList是否具有固定的大小


IsReadOnly


bool, 指示ArrayList是否为只读


IsSynchronized


bool, 指示是否同步对ArrayList 的访问


Item


获取或者设置指定索引处的元素


SyncRoot


获取可用于同步ArrayList访问的对象

ArrayList 元素的添加:

? ?ArrayList中提供了 Add() 和 Insert() 方法向ArrayList集合中添加元素:

? ?[1]. Add(): //或者AddRange()

? ? ? ?Add() 不能规定添加到集合中元素的位置, 一般是在ArrayList集合的结尾处。

? ? ? ?语法:

? ? ? ? arrayList.Add(Object value);

? ? ? ? arrayList.AddRange(array)

? ? ? ??//value: 要添加到 ArrayList 末尾处的Object, 该值可以为空引用, 同样允许重复的值;

? ? [2]. Insert(): //或者Insert

? ? ? ? Insert() 方法用来将元素添加到集合指定位置(以索引表示)

? ? ? ? 语法:

? ? ? ? arrayList.Insert(int index, Object value);

? ? ? ??//index: 从0开始的索引

? ? ? ? //value: 同Add()

? ? ? ? 说明:

? ? ? ? 如果说ArrayList实际存储的元素数量已经等于ArrayList可以存储的元素数, 则会通过自动重新分配内部数组增加ArrayList 的容量(即长度), 并在添加新元素之间将现有的元素复制到新的数组中。

? ? ? ? ? ??
?

ArrayList 与 Array 的相互转换:

时间: 2024-10-28 14:29:19

C#之 ArrayList概述的相关文章

集合之ArrayList

一.ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小. 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.默认初始容量为10.随着ArrayList中元素的增加,它的容量也会不断的自动增长.在每次添加新的元素时,ArrayList都会检查是否需要进行扩容操作,扩容操作带来数

Java集合---ArrayList源码

本文转载自博客园牛奶.不加糖 原文地址:http://www.cnblogs.com/ITtangtang/p/3948555.html 本文仅供本人学习参考使用,如有侵权立即删除. 一. ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安

Java - ArrayList源码分析

java提高篇(二一)-----ArrayList 一.ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小. 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.默认初始容量为10.随着ArrayList中元素的增加,它的容量也会不断的自动增长.在每次添加新的元素时,Array

Arraylist动态扩容详解

ArrayList 概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长. ArrayList不是线程安全的,只能用在单线程环境下. 实现了Serializable接口,因此它支持序列化,能够通过序列化传输: 实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问: 实现了Cloneable接口,能被克隆. 动态扩容 一 初始化 首先有三种方式来初始化: public ArrayList(); 默认的构造器,将会以默认的大小来初始化内部的数

Java集合框架:ArrayList

ArrayList定义 package java.util; public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final int DEFAULT_CAPACITY = 10; private static final Object[] EMPTY_ELEME

java 集装箱 arraylist 用法

1. ArrayList概述: ArrayList 是一个数组队列.相当于 动态数组. 与Java中的数组相比.它的容量能动态增长.它继承于AbstractList.实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的加入.删除.改动.遍历等功能. ArrayList 实现了RandmoAccess接口,即提供了随机訪问功能.Ran

ArrayList的实现原理--转

1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小.   每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向ArrayList中不断添加元素,其容量也自动增长.自动增长会带来数据向新数组的重新拷贝,因此,如果可预知数据量的多少,可在构造ArrayList时指定其容

Java集合---ArrayList的实现原理

一. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小.   每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向ArrayList中不断添加元素,其容量也自动增长.自动增长会带来数据向新数组的重新拷贝,因此,如果可预知数据量的多少,可在构造ArrayList时指定其容

java 容器 arraylist 使用方法

1. ArrayList概述: ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的添加.删除.修改.遍历等功能. ArrayList 实现了RandmoAccess接口,即提供了随机访问功能.Rand