黑马程序员-集合与泛型集合

来源:互联网 发布:广告联盟 异步加载js 编辑:程序博客网 时间:2024/05/16 17:11
----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


数组和集合都是存放大量相同的数据

在数组中,想要对数组成员进行处理很麻烦,特别是插入、删除、增加、清空、排序等工作。但是集合对此作出了弥补。

集合具有很强的通用性,所以常用的方法的方法名应该记住

集合的声明:

          ArrayList a1 =newArrayList();

增加:

       a1.Add(0);这样就可以在集合a1中添加项

        Add方法添加的object的类型→也就是说可以添加任何类型

        还有就是当a1.Add(nums);nums是一个数组的时候,也是可以添加进集合的,但是整个数组是作为集合的一个元素,而这个元素中包含原有的数组中的全部信息

       若想将数组中的每个元素依次添加到集合的末尾,那么这个时候可以使用a1.AddRange(nums)方法;这个方法的强大的地方还有一点那就是可以将自己再加一遍a1.AddRange(a1);就会将集合a1中的数再加一遍

移除:

      关于移除的方法有两个,Remove和RemoveAt

      RemoveAt(int index);表示将移除下标为index的数据移除,index超出a1.Count的时候将会报错

      Remove(object obj);将会移除obj第一次出现的那个,集合a1中没有obj的时候将不会报错,只是什么都不执行而已

清空:a1.Clear()方法,就可以清空集合

排序:a1.Sort();方法是正序排列

        a1.Reverse();将集合中元素顺序反转

复制:a1.Clone()方法可以将集合复制

是否包含某元素:a1.Contains(1),检查集合中是否包含数字1;

插入:

      a1.Insert(int index, object value);在index位置插入value

   a1.InsertRange();插入一个数组

转化成数组:

      a1.ToArray();将集合转换为数组

 

泛型集合

      List<T> 名称=new List<T>;

      这样就声明了一个泛型集合,T表示你要声明的集合的类型

      使用泛型集合,那么就需要集合中的数据的类型相同

      对泛型集合的操作参考集合中的方法,完全一样

      使用泛型集合的最大的好处就是节省资源,比ArrayList运算速度要快,这个是可以通过代码来验证的

      Stopwatch这个类可以记录代码段的运行时间,那么我们可以用下面的代码进行测试

staticvoid Main(string[] args)

        {

            ArrayList a1 = new ArrayList();

            List<int> lInt = new List<int>();

            Stopwatch sw1 = new Stopwatch();

            Stopwatch sw2 = new Stopwatch();

           sw1.Start();

            for (int i= 0; i<1000000; i++)

            {

               a1.Add(i);

            }

           sw1.Stop();

            Console.WriteLine(sw1.Elapsed);

           sw2.Start();

            for (int i = 0; i <1000000; i++)

            {

               lInt.Add(i);

            }

           sw2.Stop();

            Console.WriteLine(sw2.Elapsed);

            Console.ReadKey();

        }

那么运行的结果为:



很明显的可以看出使用List<T>要节省很多时间,运算效率较高



----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
0 0