C#拾遗之ArrayList类

动态数组ArrayList类在System.Collecions的命名空间下,所以使用时要加入System.Collecions命名空间,而且ArrayList提供添加,插入或移除某一范围元素的方法。在ArrayList中,用户只能一次获取或设置一个元素的值。

一,ArrayList元素的添加

ArrayList提供了两种方法用于向ArrayList添加元素,即Add和AddRange。

(1),Add方法将单个元素添加到列表的尾部,其格式为:ArrayList 对象.Add(要添加的值)

(2),AddRange方法获取一个实现ICollection接口的集合实例,并将这个集合实例按顺序添加到列表的尾部,其格式为:ArrayList 对象.AddRange(要添加的数组)

例一,通过上述的方法对数组进行元素的添加和数组的添加

<span style="font-size:18px;">using System;
using System.Collections;//需要添加的命名空间
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 动态数组的使用
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList al = new ArrayList(3);//定义的一个动态数组且初始数组元素个数为3个
            Console.WriteLine("未添加前al的元素个数为:"+al.Count);
            al.Add("abc");
            al.Add("xyz");
            al.Add("opq");
            Console.WriteLine("调用Add方法后al的元素个数为:"+al.Count);
            string[] last = { "def", "ghj" };
            al.AddRange(last);
            Console.WriteLine("调用AddRange方法后al的元素个数为:"+al.Count);
            foreach (string item in al)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
    }
}</span>

输出的结果为:未添加前al的元素个数为:0

调用Add方法后al的元素个数为:3

调用AddRange方法后al的元素个数为:5

abc  xyz  opq  def  ghj(每一行输出一个)

二,ArrayList元素的删除

ArrayList提供了四种方法用于从ArrayList中删除元素。这四种方法是Remove,RemoveAt,RemoveRange方法和Clear方法。

Remove方法接受一个object类型值的参数,用于移除指定元素值的第一个匹配集合元素。其格式为:ArrayList 对象.Remove(值)

RemoveAt方法接受一个int类型的参数,用于删除指定索引的集合元素。其格式为:ArrayList 对象.RemoveAt(索引)

RemoveRange方法从集合中移除一定范围的元素。其格式为: ArrayList 对象.RemoveRange(开始索引,要删除的个数)

Clear方法清除所有的元素。

例二,用上述的方法实现对元素的删除

<span style="font-size:18px;">using System;
using System.Collections;//需要添加的命名空间
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 动态数组的使用
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList al = new ArrayList(3);//定义的一个动态数组且初始数组元素个数为3个
            al.Add("abc");
            al.Add(50);
            al.Add(10);
            string[] last = { "def", "ghj" };
            al.AddRange(last);
            Console.WriteLine("未删除前al的元素个数为:" + al.Count);
            al.RemoveAt(2);//删除索引为2后的元素
            Console.WriteLine("删除索引为2后的元素个数为:"+al.Count);
            al.Remove("abc");//删除第一个值为abc的项
            Console.WriteLine("删除值为abc后的元素个数为:"+al.Count);
            al.RemoveRange(1,2);//删除自索引为1的两个元素
            Console.WriteLine("删除自索引为1的两个元素后的元素个数:"+al.Count);
            foreach (string item in al)//因为此对象中的元素类型不一致所以为object类型
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
    }
}</span>

输出的结果为:未删除前al的元素个数为:5

删除索引为2后的元素个数为:4

删除值为abc后的元素个数为:3

删除自索引为1的两个元素后的元素个数:1

xyz

三,ArrayList元素的查找

ArrayList元素的查找提供了三个方法查找ArrayList中的元素,分别是IndexOf方法,LastindexOf方法和BinarySearch方法。

(1),IndexOf方法从前后搜素指定的字符串,如果找到,返回匹配的第一项的自0开始的索引,否则返回-1。其格式为:ArrayList 对象.IndexOf(要索引的字符串)

(2),LastIndexOf方法从后向前搜素指定的字符串,如果找到,返回匹配的最后一项自0开始的索引,否则返回-1.其格式为:ArrayList 对象.LastIndexOf(要索引的字符串)

以上两个方法都有三个重载版本,表示从指定的索引处开始搜索或者是从指定索引处搜素指定长度的字符串。

(3),BinarySearch方法使用二分算法从集合中指定的值,并返回找到的从0开始的索引,否则返回-1,其格式为:ArrayList 对象.BinarySearch(要索引的字符串)

例三,使用上述的方法查找指定的元素

<span style="font-size:18px;">using System;
using System.Collections;//需要添加的命名空间
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 动态数组的使用
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = { "a", "b", "c", "d", "d", "e", "f" };
            ArrayList al = new ArrayList(str);
            int i = al.IndexOf("c");//查找第一个字符c在数组中的位置
            Console.WriteLine("元素c在集合中的位置是:"+i);
            i = al.LastIndexOf("d");//查找最后一个字符d在数组中的位置
            Console.WriteLine("元素d在集合中的位置是:" + i);
            int j = al.BinarySearch("f");//查找元素f在数组中的位置
            if (j>0)
            {
                Console.WriteLine("元素f在数组中的位置是:"+j);
            }
            else
            {
                Console.WriteLine("没有找到a");
            }
            Console.ReadLine();
        }
    }
}</span>

输出的结果为:元素c在集合中的位置是:2

元素d在集合中的位置是:3

元素f在数组中的位置是:5

四,ArrayList元素的遍历

在执行上述程序的过程中已经使用foreach语句进行ArrayList元素的遍历,在这里就不再举例进行说明。

时间: 2024-10-13 18:24:09

C#拾遗之ArrayList类的相关文章

ArrayList类的用法

1.什么是ArrayList ArrayList就是传说中的动态数组,是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.RemoveAt(5);//将第6

java集合框架--ArrayList类、Vector和LinkedList类

1.ArrayList类概述 底层数据结构是数组,查询块,增删慢. 线程不安全,效率高. 2.ArrayList案例 2.1存储字符串并遍历 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class ArrayListDemo { public static void main(String[] args) { //创建ArrayL

ArrayList类示例1

ArrayList类示例2 import java.util.ArrayList; public class ArrayListDemo2 { //放入 public static void main(String[] args){ ArrayList<Integer> a1 = new ArrayList<Integer>(); //创建一个空的ArrayList对象 for(int i=0; i<10;i++){ Integer a2 = new Integer(i);/

C#中ArrayList类的使用

ArrayList类 使用大小可按须要动态添加的数组实现IList接口 命名空间:System.Collections 程序集:mscorlib 语法: public class ArrayList:IList, ICollection, IEnumerable, ICloneable 1.ArrayList加入元素 1.1 ArrayList.Add方法: 语法:public virtual int Add(Object value) 将对象加入到ArrayList的结尾处 ArrayList

集合 ArrayList 类

集合的基本信息: System.Collections   系统类中的收藏类,定义各种对象(如列表,队列,位数组,哈希表和字典)的集合 常用的集合为ArrayList类:特殊集合一般会用到Queue队列集合.Stack栈集合哈有Hashtable哈希表集合. 集合和数组的区别:数组是连续的同一类型数据.集合可以是不连续的多种数据类型. ArrayList: ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:     

Java ArrayList类

ArrayList 类扩展AbstractList,并实现了List接口.支持 ArrayList 动态数组根据需要可以增长. 标准的Java数组是一个固定长度的.创建数组后,他们不能生长或缩小,这意味着必须事先知道数组将容纳多少元素. 数组列表是用初始大小创建.当超出该大小时,该集合会自动放大.当被删除的对象,数组可以被缩小. ArrayList类支持三种构造函数.第一个构造函数建立一个空的数组列表. ArrayList( ) 下面的构造函数建立一个与集合c 的元素初始化一个数组列表. Arr

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

1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在ArrayList中主要使用Add.Remove.RemoveAt.Insert四个方法对栈进行操作.Add方法用于将对象添加到 ArrayList 的结尾处:Remove方法用于从 ArrayList 中移除特定对象的第一个匹配项:RemoveAt方法用于移除 ArrayList 的指定索引处的元素:Insert方法用于将元素插入 ArrayList 的指定索引处. 示例 ArrayList的使用 示例将介

Java核心类库—集合框架—ArrayList类

ArrayList类是java集合框架出现之后取代Vector类的 二者底层原理都是基于数组的算法,一模一样. 区别: Vector:所有的方法都使用了synchronize修饰符 线程安全但是性能较低,适用于多线程环境. ArrayList:所有的方法都没使用synchronize修饰符 线程不安全但性能较高. 即使以后多线程也不要使用Vector类 因为:List list = Collections.synchronizedList(new ArrayList(...)); 常用方法参照V

Java中ArrayList类详解

1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.Remove