前边一贯认为因为List内部贯彻是数组,ToArray的完毕只是将数组重临出去而已。

至于List.ToArray()方法的频率测量检验,list.toarray功能

事先一向以为因为List内部贯彻是数组,ToArray的完毕只是将数组重临出去而已。

明日测了一下发掘并不是那么

var a = new List<int>();
for (int i = 0; i < 10000; i++)
{
a.Add(i);
}
DebugHelper.StartWatch();
foreach (var i in Enumerable.Range(0, 10000))
{
a.ToArray();
}
DebugHelper.StopWatch();

1万数额大小的List,调用1万次ToArray的年月成本是417ms左右。

报着质疑看了下源码,没悟出它是把内部数组复制了一份再回到

public T[] ToArray()
{
T[] array = new T[this._size];
Array.Copy(this._items, 0, array, 0, this._size);
return array;
}

永利开户送38元体验金,由此看来对于重复性操作,能够思量直接缓存成全局变量,大概直接用List作为参数。

以上所述是我给大家介绍的关于List.ToArray()方法的频率测验,希望对大家有着帮助,假若我们有其它疑问请给自己留言,小编会及时过来大家的。在此也特别谢谢我们对帮客之家网址的帮衬!

此前从来认为因为List内部贯彻是数组,ToArray的兑现只是将数组重返出去而已。
今日测了一…

今日测了须臾间意识并不是那么

var a = new List<int>();
for (int i = 0; i < 10000; i++)
{
a.Add(i);
}
DebugHelper.StartWatch();
foreach (var i in Enumerable.Range(0, 10000))
{
a.ToArray();
}
DebugHelper.StopWatch();

1万数码大小的List,调用1万次ToArray的小时消耗是417ms左右。

报着疑惑看了下源码,没悟出它是把里面数组复制了一份再回来

public T[] ToArray()
{
T[] array = new T[this._size];
Array.Copy(this._items, 0, array, 0, this._size);
return array;
}

如上所述对于重复性操作,能够怀恋直接缓存成全局变量,大概直接用List作为参数。

如上所述是小编给我们介绍的有关List.ToArray()方法的功效测量试验,希望对大家全体协理,假如我们有其余疑问请给笔者留言,作者会及时还原大家的。在此也极其感激大家对剧本之家网址的支撑!

您或者感兴趣的小说:

  • Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是
    E的缘故剖判

相关文章