ArrayList 和 List<T>用法

来源:互联网 发布:java 获取法定节假日 编辑:程序博客网 时间:2024/06/02 17:09

ArrayList 类

不保证会对 ArrayList 排序。 在执行需要对ArrayList 排序的操作(如 BinarySearch)之前,必须对 ArrayList 进行排序。

ArrayList 的容量是ArrayList 可以保存的元素数。随着向 ArrayList 中添加元素,容量通过重新分配按需自动增加。可通过调用 TrimToSize 或通过显式设置 Capacity 属性减少容量。

使用整数索引可以访问此集合中的元素。 此集合中的索引从零开始。

ArrayList 接受nullNothingnullptrnull 引用(在 Visual Basic 中为Nothing 作为有效值并且允许重复的元素。

示例:

using System;using System.Collections;public class SamplesArrayList  {   public static void Main()  {      // Creates and initializes a new ArrayList.      ArrayList myAL = new ArrayList();      myAL.Add("Hello");      myAL.Add("World");      myAL.Add("!");      // Displays the properties and values of the ArrayList.      Console.WriteLine( "myAL" );      Console.WriteLine( "    Count:    {0}", myAL.Count );      Console.WriteLine( "    Capacity: {0}", myAL.Capacity );      Console.Write( "    Values:" );      PrintValues( myAL );   }   public static void PrintValues( IEnumerable myList )  {      foreach ( Object obj in myList )         Console.Write( "   {0}", obj );      Console.WriteLine();   }}/* This code produces output similar to the following:myAL    Count:    3    Capacity: f    Values:   Hello   World   !*/

List<(Of<(T>)>) 泛型类

表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。T 列表中元素的类型。

List<(Of<(T>)>) 类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<(Of<(T>)>) 泛型接口。

List<(Of<(T>)>) 类既使用相等比较器又使用排序比较器。

  • 诸如 Contains、IndexOf、LastIndexOf 和 Remove 这样的方法对列表元素使用相等比较器。类型 T 的默认相等比较器按如下方式确定。如果类型 T 实现 IEquatable<(Of<(T>)>) 泛型接口,则相等比较器为该接口的 Equals(T) 方法;否则,默认相等比较器为 Object..::.Equals(Object)。

  • 诸如 BinarySearch 和 Sort 这样的方法对列表元素使用排序比较器。类型 T 的默认比较器按如下方式确定。 如果类型T 实现 IComparable<(Of<(T>)>) 泛型接口,则默认比较器为该接口的 CompareTo(T) 方法;否则,如果类型T 实现非泛型 IComparable 接口,则默认比较器为该接口的 CompareTo(Object) 方法。如果类型T 没有实现其中任一个接口,则不存在默认比较器,并且必须显式提供比较器或比较委托。

List<(Of<(T>)>) 不保证是排序的。 在执行要求List<(Of<(T>)>) 已排序的操作(例如 BinarySearch)之前,您必须对List<(Of<(T>)>) 进行排序。

可使用一个整数索引访问此集合中的元素。 此集合中的索引从零开始。

List<(Of<(T>)>) 接受nullNothingnullptrnull 引用(在 Visual Basic 中为Nothing 作为引用类型的有效值并且允许有重复的元素。


示例:

        static void Main(string[] args)        {            List<Salary> companySalary = new List<Salary>()//同时对List初始化                {                    new Salary() { Name = "Mike", BaseSalary = 3000, Bonus = 1000 },                    new Salary() { Name = "Rose", BaseSalary = 2000, Bonus = 4000 },                    new Salary() { Name = "Jeffry", BaseSalary = 1000, Bonus = 6000 },                    new Salary() { Name = "Steve", BaseSalary = 4000, Bonus = 3000 }                };            companySalary.Sort(new BonusComparer());    //提供一个非默认的比较器            foreach (Salary item in companySalary)            {                Console.WriteLine(string.Format("Name:{0} \tBaseSalary:{1} \tBonus:{2}", item.Name, item.BaseSalary, item.Bonus));            }            Console.ReadKey();        }



0 0
原创粉丝点击