using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace work081
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(CollectionDemo.Test(100000));
Response.Write("===========================<br>");
Response.Write(CollectionDemo.Test(100000));
Response.Write("===========================<br>");
Response.Write(CollectionDemo.Test(100000));
Response.Write("===========================<br>");
}
}
}
collectiondemo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace work081
{
/// <summary>
/// 测试对集合进行操作所花费的时间
/// </summary>
public class CollectionDemo
{
private CollectionDemo()
{
}
/// <summary>
/// 数组操作花费的时间
/// </summary>
/// <param name="maxCount"></param>
/// <returns></returns>
private static TimeSpan ArrayOperation(int maxCount)
{
DateTime start = DateTime.Now;
int[] intList = new int[maxCount];
int j = 0;
for (int i = 0; i < maxCount; i++)
{
intList[i] = i;
}
for (int i = 0; i < maxCount; i++)
{
j = intList[i];
}
DateTime end = DateTime.Now;
return end - start;
}
/// <summary>
/// 列表集合
/// </summary>
/// <param name="maxCount"></param>
/// <returns></returns>
private static TimeSpan ArrayListOperation(int maxCount)
{
DateTime start = DateTime.Now;
//System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
System.Collections.ArrayList arrayList = new System.Collections.ArrayList(maxCount);
int j = 0;
for (int i = 0; i < maxCount; i++)
{
arrayList.Add(i);
}
for (int i = 0; i < maxCount; i++)
{
j = (int)arrayList[i];
}
DateTime end = DateTime.Now;
return end - start;
}
/// <summary>
/// 泛型
/// </summary>
/// <param name="maxCount"></param>
/// <returns></returns>
private static TimeSpan GenericListOperation(int maxCount)
{
DateTime start = DateTime.Now;
//System.Collections.Generic.List<int> intList = new List<int>();
System.Collections.Generic.List<int> intList = new List<int>(maxCount);
int j = 0;
for (int i = 0; i < maxCount; i++)
{
intList.Add(i);
}
for (int i = 0; i < maxCount; i++)
{
j = intList[i];
}
DateTime end = DateTime.Now;
return end - start;
}
public static string Test(int maxCount)
{
string result = string.Empty;
TimeSpan ts1 = ArrayOperation(maxCount);
TimeSpan ts2 = ArrayListOperation(maxCount);
TimeSpan ts3 = GenericListOperation(maxCount);
result += string.Format("执行{0}次操作:<br>",maxCount);
result += string.Format("数组耗时{0}毫秒。<br>",ts1.TotalMilliseconds);
result += string.Format("ArrayList耗时{0}毫秒。<br>",ts2.TotalMilliseconds);
result += string.Format("泛型集合耗时{0}毫秒。<br>",ts3.TotalMilliseconds);
return result;
}
}
}