【发布时间】:2015-07-06 01:55:22
【问题描述】:
例如我有以下代码实现秒表:
var list = new List<int>();
var array = new ArrayList();
Stopwatch listStopwatch = new Stopwatch(), arrayStopwatch = new Stopwatch();
listStopwatch.Start();
for (int i =0; i <=10000;i++)
{
list.Add(10);
}
listStopwatch.Stop();
arrayStopwatch.Start();
for (int i = 0; i <= 10000; i++)
{
list.Add(10);
}
arrayStopwatch.Stop();
Console.WriteLine(listStopwatch.ElapsedTicks > arrayStopwatch.ElapsedTicks);
为什么这个值不相等?
【问题讨论】:
-
为什么它们应该是一样的?
-
不保证相同。他们可能会,也可能不会。如果您有一个论点是它们必须相等,请先告诉我们您的论点。
-
一个更有趣的问题是问为什么一个比另一个快。
-
第二个循环应该是
array吗? -
顺便说一句,
ArrayList不是数组(int[])。