C#动态数组ArrayList

在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组。

一、ArrayList类的常用属性和方法

1. ArrayList类的常用属性

2. ArrayList类的常用方法

二、ArrayList类与Array类的区别

?ArrayList类实际上是Array类的优化版本。

?ArrayList只能定义一维数组,Arrays可以定义多维数组。

?ArrayList的下限始终为0,Array可以定义自己的下限。

?ArrayList的元素都是object类型的,因此需要进行装箱和拆箱操作,内存分配的代价很高,而Array的元素通常是特定类型的。

?ArrayList的元素个数可以自动扩展,Array的元素个数是固定的。

?ArrayList具有添加、删除、插入、移动和复制等方法。

三、示例
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; // 导入ArrayList的命名空间
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            // C#动态数组ArrayList-www.baike369.com
            ArrayList alist = new ArrayList();
            alist.Add("One");        // 添加对象
            alist.Add(" Two");
            Console.Write("给数组添加的元素:");
            foreach (Object obj in alist)
            { Console.Write(obj); }
            Console.WriteLine();
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.Insert(1, " c#"); // 在指定的索引位置插入元素C#
            Console.Write("在索引值为1的位置插入:");
            foreach (Object obj in alist)
            { Console.Write(obj); }
            Console.WriteLine();
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.Add("。");
            Console.WriteLine("添加。");
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.Add("---"); // 集合容量不够时,会出现位数的变化
            Console.WriteLine("添加---");
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            // 用索引方式获取集合元素值
            Console.WriteLine("3号索引的:" + alist[3]);
            // 利用contains方法,查找集合中是否包含“?”
            Console.WriteLine("数组中是否包含?:" + alist.Contains("?"));
            Console.Write("经过前面操作后的数据元素:");
            foreach (Object obj in alist)
            { Console.Write(obj); }
            Console.WriteLine();
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.Remove("。"); // 移除集合中的“。”元素
            alist.Remove("?");  // 移除集合中的“?”元素
            Console.WriteLine("没有包含?,减少1个元素,容量不变");
            foreach (Object obj in alist)
            { Console.Write(obj); }
            Console.WriteLine();
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.RemoveAt(3);  // 移除3号索引位的元素
            Console.Write("移除3号索引位的元素:");
            foreach (Object obj in alist)
            { Console.Write(obj); }
            Console.WriteLine();
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.TrimToSize();  // 缩减容量
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.Clear();       // 清除ArrayList中的所有元素
            Console.WriteLine("清除ArrayList中的所有元素后:");
            Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
            Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
            alist.TrimToSize();  // 再次缩减容量
            Console.WriteLine("再次缩减容量后,能够包含的数组元素的最多个数:"
                +alist.Capacity);
            Console.ReadLine();
        }
    }
}

运行结果:

时间: 2024-11-06 07:14:27

C#动态数组ArrayList的相关文章

动态数组arraylist的使用

package com.vince.list; import java.util.ArrayList; public class ListDemo { public static void arraylist(){//动态数组 ArrayList list=new ArrayList(); list.add(10); list.add("小白"); list.add(true); //插入第几个元素 //list.add(1,34); //删除元素 //list.remove(0);

C#动态数组ArrayList和List<T>的比较

C#中一维动态数组(即列表)分ArrayList和List<T>两种,其容量可随着我们的需要自动进行扩充 一.ArrayList类(少用) ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间 ArrayList里边的数据类型是object,它类似于向量,可以存储不同的数据类型在一个数组里边(转换为了object) 下面是ArrayList的声明: ArrayList list = new ArrayList(); //声明一个ArrayL

Java动态数组ArrayList

1.类结构: ·        java.lang.Object ·                         java.util.AbstractCollection<E> ·                                         java.util.AbstractList<E> ·                                                          java.util.ArrayList<E&

关于C#中的动态数组ArrayList

在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组. 二.ArrayList类与Array类的区别 ArrayList类实际上是Array类的优化版本. ArrayList只能定义一维数组,Arrays可以定义多维数组. ArrayList的下限始终为0,Array可以定义自己的下限. ArrayList的元素都是object类型的,因此需要进行装箱和拆箱操作,内存分配的代价很高,而Array的元素通常是特定类型的.

动态数组 - ArrayList

前言 如果数组的大小要随时间变化,那么数组操作起来就比较麻烦. 在C++中,这种情况要用到动态向量Vector. 而Java中,提供了一种叫做ArrayList的泛型数组结构类型,提供相似的作用. 其实都是一种东西,只是在使用上面有那么一点区别. 本文将讲解ArrayList的具体使用方法. ArrayList常用方法 先要做如下说明: 1. 因为 Java 不支持运算符的重载,所以不支持下标运算符,无法使用[]运算符来存取元素. 2. ArrayList成员必须是对象类型(泛型不支持基本类型)

C#深入研究ArrayList动态数组自动扩容原理

1 void Test1() 2 { 3 ArrayList arrayList = new ArrayList(); 4 int length = 3; 5 for (int i = 0; i < length; i++) 6 { 7 arrayList.Add("TestData"); 8 } 9 Console.WriteLine("count = " + arrayList.Count); 10 Console.WriteLine("capa

Java 动态数组 深究

[Java心得总结六]Java容器中——Collection在前面自己总结的一篇博文中对Collection的框架结构做了整理,这里深究一下Java中list的实现方式 1.动态数组 In computer science, a dynamic array, growable array, resizable array, dynamic table, mutable array, or array list is a random access, variable-size list data

C# 动态数组(ArrayList)

动态数组(ArrayList)代表可单独被索引的对象的集合. 动态数组可以自动调整大小. 允许动态内存的分配,怎加,搜索,排序. using System; using System.Collections; namespace CollectionApplication { class Program { static void Main(string[] args) { ArrayList al = new ArrayList(); Console.WriteLine("Adding som

C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)

目录 00 简介 01 算法概述 02 公用方法 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存的忙闲状态,为进程分配和释放内存.当主存的空间太小而无法装入所有的进程时,就需要在内存和硬盘之间进行调度操作. 多数操作系统只采用某种特定的页面置换算法进行置换,无法预先探测当前运行进程的页面访问模式,因此不能根据不同的页面访问模式,选用不同的页面置换算法.当然,如果能对不同的访问模式选取相应的页面置换算法,