C#中的ArrayList类详解

这篇具有很好参考价值的文章主要介绍了C#中的ArrayList类详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、ArrayList类定义

二、ArrayList类与数组的区别

三、ArrayList类对象的声明

1、默认的构造器

2、用一个ICollection对象来构造

3、用指定的大小初始化内部的数组

四、ArrayList常用属性

五、ArrayList常用方法

1、ArrayList元素的添加 

(1)Add()方法

(2)Insert()方法

(3)综合例

2、ArrayList元素的删除

(1)Clear()方法

(2)Remove()方法

(3)RemoveAt()方法

(4)RemoveRange()方法

(5)综合例

3、ArrayList元素的查找

(1)Contains()方法

(2)IndexOf()方法

(3)LastIndexOf()方法

4、ArrayList的遍历

一、ArrayList类定义

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

        ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看作扩充了功能的数组,但它并不等同于数组。使用ArrayList类要添加引用:

        using System.Collections;

二、ArrayList类与数组的区别

        与数组相比,ArrayList类为开发人员提供了以下功能。

        ☑ 数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。

        ☑ ArrayList提供添加、删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的值。

        ☑ ArrayList提供将只读和固定大小包装返回集合的方法,而数组不提供。

        ☑ ArrayList只能是一维形式,而数组可以是多维的。

        Array的长度是它可包含的元素总数。Array的秩是Array中的维数。Array中维度的下限是Array中该维度的起始索引,多维Array的各个维度可以有不同的界限。

三、ArrayList类对象的声明

        ArrayList提供了3个构造器,通过这3个构造器可以有3种声明方式:

1、默认的构造器

        以默认(16位)的大小来初始化内部的数组。

        构造器格式:public ArrayList();

        通过以上构造器声明ArrayList的语法格式:

        ArrayList List=new(); //ListArrayList对象名。

ArrayList List=new();	 //List:ArrayList对象名
for(i=0;i<10;i++)        //给ArrayList类对象添加10个int型元素
{
    List.Add(i);
}

2、用一个ICollection对象来构造

        并将该集合的元素添加到ArrayList中。

        构造器格式:public ArrayList(ICollection);

        通过以上构造器声明ArrayList的语法格式:

        ArrayList List=new( arrayName);

        ☑ List:ArrayList对象名。

        ☑ arryName:要添加集合的数组名。

int[]arr=new int[]{1,2,3,4,5,6,7,8,9};
ArrayList List=new(arr);

3、用指定的大小初始化内部的数组

        构造器格式:public ArrayList(int);

        通过以上构造器声明ArrayList的语法格式:

        ArrayList List=new(n);

        ☑ List:ArrayList对象名。

        ☑ n:ArrayList对象的空间大小。

ArrayList List=new(10);
for(int i=0;i<List.Count;i++)
{
    List.Add(i);    //给ArrayList添加10个int型元素
}

四、ArrayList常用属性

属性

说明

Capacity

获取或设置ArrayList可包含的元素数

Count

获取ArrayList实际包含的元素数

IsFixedSize

获取一个值,该值指示ArrayList是否具有固定的大小

IsReadOnly

获取一个值,该值指示ArrayList是否为只读

IsSyncronized

获取一个值,该值指示是否对ArrayList同步访问

Item

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

SyncRoot

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

五、ArrayList常用方法

1、ArrayList元素的添加 

(1)Add()方法

        Add()方法用来将对象添加到ArrayList集合的结尾处,其语法格式:

        public virtual int Add(Object value);

        ☑ value:要添加到ArrayList的末尾处的Object,该值可以为空引用。

        ☑ 返回值:ArrayList索引,已在此处添加了value。

        ArrayList允许null值作为有效值,并且允许重复的元素。

int arr[] =new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	//使用声明的数组实例化ArrayList对象
List.Add(7);			    //为ArrayList对象添加元素

(2)Insert()方法

        Insert()方法用来将元素插入ArrayList集合的指定索引处,其语法格式:

        public virtual void Insert(int index, Object value)

        ☑ index:从零开始的索引,应在该位置插入value。

        ☑ value:要插入的Object,该值可以为空引用。

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

int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new(arr);	//使用声明的数组实例化ArrayList对象
List.Insert(3,7);			//在ArrayList对象索引值=3处添加元素7

(3)综合例

//Add()方法和Insert()方法
//分别使用ArrayList对象的Add()方法和Insert()方法向ArrayList集合的结尾处和指定索引处添加元素
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Test7_12
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)                           //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };
            ArrayList List = new(arr);                  //使用声明的一维数组实例化一个ArrayList对象
            Console.WriteLine("原ArrayList集合:");
            foreach (int i in List)					    //遍历ArrayList源集合并输出
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();

            for (int i = 1; i < 5; i++)
            {
                List.Add(i + arr.Length);			    //使用Add()方法为ArrayList集合添加元素
            }
            Console.WriteLine("使用Add方法添加:");
            foreach (int i in List)					    //遍历添加元素后的ArrayList集合并输出
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();

            List.Insert(6,0);						    //使用Insert()方法在ArrayList集合的index=6处添加元素0
            Console.WriteLine("使用Insert方法添加:");
            foreach (int i in List)					    //遍历最后的ArrayList集合并输出
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Read();
        }
    }
}
/*运行结果:
原ArrayList集合:
1 2 3 4 5 6
使用Add方法添加:
1 2 3 4 5 6 7 8 9 10
使用Insert方法添加:
1 2 3 4 5 6 0 7 8 9 10  */

2、ArrayList元素的删除

(1)Clear()方法

        Clear()方法用来从ArrayList中移除所有元素,其语法格式:

        public virtual void Clear()

//使用 Clear()方法清除ArrayList中的所有元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	//使用声明的数组实例化ArrayList对象
List.Clear();			    //在ArrayList对象指定位置添加元素

(2)Remove()方法

        Remove()方法用来从ArrayList中移除特定对象的第一个匹配项,其语法格式:

        public virtual void Remove(Object obj)

        obj:要从ArrayList移除的Object,该值可以为空引用。

        在删除ArrayList中的元素时,如果不包含指定对象,则ArrayList将保持不变。

//使用RemoveAt()方法从声明的ArrayList对象中移除与3匹配的元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new(arr);	//使用声明的数组实例化ArrayList对象
List.Remove(3);			    //删除ArrayList对象指定位置元素

(3)RemoveAt()方法

        RemoveAt()方法用来移除ArrayList的指定索引处的元素,其语法格式:

        public virtual void RemoveAt(int index)

        index:要移除的元素的从零开始的索引。        

//使用RemoveAt()方法从声明的ArrayList对象中移除索引为3的元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = newt(arr);	//使用声明的数组实例化ArrayList对象
List.RemoveAt(3);		    //删除ArrayList对象指定位置元素

(4)RemoveRange()方法

        RemoveRange()方法用来从ArrayList中移除一定范围的元素,其语法格式:

        public virtual void RemoveRange(int index,int count)

        ☑ index:要移除的元素的范围从零开始的起始索引。

        ☑ count:要移除的元素数。

        在RemoveRange()方法中参数count的长度不能超出数组的总长度减去参数index的值。

//在ArrayList对象中使用RemoveRange()方法从索引3处删除两个元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	   //使用声明的数组实例化ArrayList对象
List.RemoveRange(3,2);	       //删除ArrayList对象指定位置3处2个元素

(5)综合例

//RemoveRange()
//使用RemoveRange()方法删除ArrayList集合中的一批元素
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Test7_13
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)           //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            ArrayList List = new(arr);  //使用声明的一维数组实例化一个ArrayList对象
            Console.WriteLine("原ArrayList集合:");
            foreach (int i in List)     //遍历ArrayList集合中的元素并输出
            {
                /*Console.Write(i+ " ");*/  //可以注释掉.ToString()不影响结果
                Console.Write(i.ToString() + " ");
            }

            Console.WriteLine();
            List.RemoveRange(0, 5);     //从索引0处开始删除5个元素
            Console.WriteLine("删除元素后的ArrayList集合:");
            foreach (int i in List)     //遍历删除元素后的ArrayList集合并输出其元素
            {
                Console.Write(i.ToString() + " ");
            }
            Console.WriteLine();
            Console.Read();
        }
    }
}
/*运行结果:
原ArrayList集合:
1 2 3 4 5 6 7 8 9
删除元素后的ArrayList集合:
6 7 8 9     */

3、ArrayList元素的查找

(1)Contains()方法

        Contains()方法用来确定某元素是否在ArrayList集合中,其语法格式:

        public virtual bool Contains(Object item)

        ☑ item:要在ArrayList中查找的Object,该值可以为空引用。

        ☑ 返回值:如果在ArrayList中找到item,则为true;否则为false。

//使用 Contains()方法判断数字2是否在ArrayList集合中
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	   	    //使用声明的数组实例化ArrayList对象
Console.Write(List.Contains(2));	//ArrayList集合中是否包含指定的元素

(2)IndexOf()方法

        用于查找字符或者字符串首次出现的位置。

        IndexOf() 方法由以下语法表示:

public int IndexOf(String value);                  //语法1
public int IndexOf(char value);                    //语法2
public int IndexOf(String value, int startIndex);  //语法3
public int IndexOf(char value, int startIndex);    //语法4

☑ value:指定要查找的字符或者字符串。

☑startIndex:指定要查找开始的位置。

返回字符或者字符串首次出现的位置,索引值从0开始计算。

//IndexOf()
//查找字符或者字符首次出现的位置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace yxjc123
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)                                           //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            string str = "yxjc123.com  repeat yxjc123.com";            //原字符串

            Console.WriteLine("查找j:" + str.IndexOf('j'));           //查找字符j
            Console.WriteLine("查找123:" + str.IndexOf("123"));       //查找字符串123

            Console.WriteLine("查找j:" + str.IndexOf('j', 10));       //查找字符j,从开始位置10开始
            Console.WriteLine("查找123:" + str.IndexOf("123", 10));   //查找字符串123,从开始位置10开始

            Console.ReadKey();
        }
    }
}
/*运行结果:
查找j:2
查找123:4
查找j:22
查找123:24    */

(3)LastIndexOf()方法

        用于查找字符或者字符串最后出现的位置。

        LastIndexOf() 方法由以下语法表示:

public int LastIndexOf(String value);                   //语法1
public int LastIndexOf(char value);                     //语法2
public int LastIndexOf(String value, int startIndex);   //语法3
public int LastIndexOf(char value, int startIndex);     //语法4

        ☑ value:指定要查找的字符或者字符串。

        ☑ startIndex:指定要查找开始的位置,从末尾开始计算

        返回字符或者字符串最后出现的位置。

//LastIndexOf()
//用于查找字符或者字符串最后出现的位置

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace yxjc123
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)                                               //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            string str = "yxjc123.com  repeat yxjc123.com";                 //原字符串

            Console.WriteLine("查找j:" + str.LastIndexOf('j'));           //查找字符j
            Console.WriteLine("查找123:" + str.LastIndexOf("123"));       //查找字符串123

            Console.WriteLine("查找j:" + str.LastIndexOf('j', 10));       //查找字符j,倒数从开始位置10开始
            Console.WriteLine("查找123:" + str.LastIndexOf("123", 10));   //查找字符串123,倒数从开始位置10开始
            Console.ReadKey();
        }
    }
}
/*运行结果:
查找j:22
查找123:24
查找j:2
查找123:4   */

4、ArrayList的遍历

        ArrayList集合的遍历与数组类似,都可以使用foreach语句,下面通过一个实例说明如何遍历ArrayList集合中的元素。文章来源地址https://www.toymoban.com/news/detail-731603.html

//ArrayList的遍历
//使用foreach语句遍历ArrayList集合中的各个元素并输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Test7_14
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)               //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            ArrayList list = new()          //实例化一个ArrayList对象并赋值
            {
                "TM",
                "C#从入门到精通"
            };                              
            foreach (string str in list)    //遍历ArrayList集合中的元素并输出
            {
                Console.WriteLine(str);
            }
            Console.ReadLine();
        }
    }
}
/*运行结果:
TM
C#从入门到精通    */

到了这里,关于C#中的ArrayList类详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详解Java ArrayList

    ArrayList 是List接口的实现类,底层基于数组实现,容量可根据需要动态增加,相当于动态数组。 ArrayList 继承于 AbstractList ,并且还实现了 Cloneable 、 Serializable 、 RandomAccess 接口。 List :表明是列表数据结构,可以通过下标对元素进行添加删除或查找。 Serializable :表示可以进

    2024年02月06日
    浏览(39)
  • Java ArrayList类详解

    ArrayList 是 Java 中的一个动态数组数据结构,属于 Java 集合框架的一部分( java.util 包中的类)。它提供了一个基于数组的可变长度列表,允许你在运行时添加、删除和访问元素,而不需要提前指定数组的大小。 简而言之:它是Java函数库中数百个类中的一个,可以将它直接当

    2024年02月09日
    浏览(38)
  • Java语言----动态顺序表(ArrayList)

    目录 一.顺序表 二.顺序表的手动实现     2.1顺序表的创建     2.2.基本功能的实现 2.2.1扩容顺序表  2.2.2 判断顺序表是否为满  2.2.3 判断顺序表是否为空  2.2.4打印顺序表  2.2.5清空顺序表  2.3四大功能的实现          2.3.1增加元素          2.3.2删除元素          2.3.3查

    2024年02月05日
    浏览(46)
  • Java集合之ArrayList详解

    1.1. Iterator:提供了一种方便、安全、高效的遍历方式。 Iterator是一个迭代器接口,它提供了一种安全的遍历集合元素的方法,可以避免在遍历过程中修改集合引起的ConcurrentModificationException异常,同时还可以避免在遍历过程中删除集合元素时出现索引越界等问题。 ArrayList使用

    2024年02月10日
    浏览(46)
  • 【Java】ArrayList(集合)超详解

    集合和数组的优势对比: 长度可变 添加数据的时候不需要考虑索引,默认将数据添加到末尾 1.1ArrayList类概述 什么是集合 ​ 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 ArrayList集合的特点 ​ 底层是数组实现的,长度可以变化 泛型的使用 ​ 用于约束集

    2023年04月20日
    浏览(62)
  • 【List篇】ArrayList 详解(含图示说明)

    Java中的ArrayList是一个动态数组,可以自动扩展容量以适应数据的添加和删除。它可以用来存储各种类型的数据,例如String,Integer,Boolean等。ArrayList实现了List接口,可以进行常见的List操作,例如添加、插入、删除和访问元素等。 源码分析(JDK1.8) 成员变量属性

    2024年02月09日
    浏览(41)
  • 获取ArrayList集合中的元素的三种方法

    背景:创建数组List

    2024年02月10日
    浏览(40)
  • 【java】对ArrayList中的元素进行排序的几种方式

    一、使用Collections工具类 1、对基本类型排序 通过 Collections.sort() 对基本类型排序默认是以升序排序 2、对字符串类型排序 对字符串类型排序默认按照首字母a-z排序 3、对对象排序 如何使用Collections对对象排序呢? 其实只需要让我们的数据类型实现Comparable接口即可,下面定义

    2024年02月09日
    浏览(48)
  • 【JAVA语言-第15话】集合框架(二)——List、ArrayList、LinkedList、Vector集合

    目录 List集合 1.1 概述 1.2 特点 1.3 常用方法 1.4 ArrayList集合 1.4.1 概述  1.4.2 练习 1.5 LinkedList集合  1.5.1 概述 1.5.2 特点 1.5.3 常用方法 1.5.4 练习 1.6 Vector类 1.6.1 概述 1.6.2 练习 1.7 List实现类的异同点         java.util.List: List是一个接口,它继承自Collection接口。 常用的实现

    2024年01月25日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包