为了真正了解不同类型的列表之间的差异,我制作了一个程序来计算使用该列表所花费的时间。我发现队列似乎比列表慢...而且我不知道为什么
我使用下面的代码,并且总是使用几次(以消除第一次尝试和较慢的尝试),并且还希望获得更好的平均值
对于列表,我使用此代码
stopwatch = new Stopwatch();
stopwatch.Start();
for (int j = 0; j < Iter; j++)
{
List<int> list = new List<int>();
for (int i = 0; i < Iter; i++)
{
list.Add(i);
}
int sum = 0;
for (int i = 0; i < Iter; i++)
{
sum += list[i];
}
}
stopwatch.Stop();
label1.Text = stopwatch.ElapsedMilliseconds.ToString();
用于队列
stopwatch = new Stopwatch();
stopwatch.Start();
for (int j = 0; j < Iter; j++)
{
Queue<int> list = new Queue<int>();
for (int i = 0; i < Iter; i++)
{
list.Enqueue(i);
}
int sum = 0;
for (int i = 0; i < Iter; i++)
{
sum += list.Dequeue();
}
}
stopwatch.Stop();
label6.Text = stopwatch.ElapsedMilliseconds.ToString();
我希望排队会更快...但是事实并非如此 队列比列表慢25%