重温数据结构与算法(2) 编程中最常用,最通用的数据结构---数组和ArrayList

39 篇文章 0 订阅
10 篇文章 0 订阅
1,什么是数组?
  答:数组是一组 同数据类型且可索引的数据的集合

  2,数组Array和ArrayList有何区别?
  答:数组是固定大小的,而ArrayList是可变大小的。

一,数组的使用(适用于固定大小)

复制代码
namespace ArrayDemo1
{
    class Program
    {
        static void Main(string[] args)
        {
            //1, 数组的声明和初始化,有两种方法
            //方法一:常规方法
            //string[] names=new string[5];//需要指定数组元素个数
            //names[0] = "a";
            //names[1] = "b";
            //names[2] = "c";
            //names[3] = "d";
            //names[4] = "e";

            //方法二:对象初始化列表
            string[] names = new string[] { "a","b","c","d","e"};//与方法一等价

            //2, 数组元素的设置和访问,有两种方法
            //方法一:直接存取法
            names[2] = "cc";//设置
            string myName=names[2];//存取
            

            //调用Array类的SetValue()和GetValue()方法
            //names.SetValue("cc",2);//设置
            //string myName1 = (string)names.GetValue(2);//存取,注意GetValue返回的类型是Object

            //3, 数组的遍历
            foreach (string name in names)//也可以使用for循环遍历
            {
                Console.Write(name+" ");
            }
            Console.ReadKey();

            //程序输出结果为:
            /*
             a b cc d e
             */
        }
    }
}
复制代码

 二,ArrayList的使用(适用于动态增长的数组)

复制代码
namespace ArrayListDemo1
{
    class Program
    {
        static void Main(string[] args)
        {
            //1, 创建一个ArrayList实例(对象)
            ArrayList grades = new ArrayList();//不需要指定数据项大小

            //2, 添加项,有两种添加方法
            //方法一:Add()方法
            grades.Add(100);//每次只能添加一个项,且添加在末尾
            grades.Insert(1,95);//添加在指定位置

            //方法二:AddRange()方法
            grades.AddRange(new int[]{90,80,70});//注意该方法参数为ICollection对象,即实现了接口ICollection

            //3, 移除项,有两种方法
            //方法一:Remove()方法
            if (grades.Contains(90))//移除前最好检查对象是否存在
            {
                grades.Remove(90);
                Console.WriteLine("90 be removed!");
            }
            else
            {
                Console.WriteLine("Object not in ArrayList!");
            }

            //方法二:RemoveAt()方法,适用于知道元素的索引的情况下
            int pos = 0;
            pos = grades.IndexOf(80);//通过IndexOf()方法确定要移除元素的位置(索引)
            grades.RemoveAt(pos);
            Console.WriteLine("80 be removed!");

            //4, 遍历
            Console.WriteLine("The list of grades: ");
            foreach (Object grade in grades)
            {
                Console.Write(grade+" ");
            }
            Console.ReadKey();

            //程序输出结果为:
            /*
             100 95 70
             */
        }
    }
}
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值