Queue<T> C# 指定大小有什么好处

如题
2025-02-27 03:59:30
推荐回答(2个)
回答1:

Queue对象底层有一个数组,你若不指定大小,他会默认给定一个大小。
若数据比这个数组的大小多,他会重新分配数组,大概是原来的一倍大,然后把旧有数据copy进去。
如果你反复大量添加数据,又没有指定足够大的初始大小,他会做很多次数组拷贝,消耗性能。
此外,就算数据比数组大小只多1个,他也会自动扩大一倍,浪费空间,所以若能预先知道大概的大小,并指定,可以节约空间。

此外,若数据数量超过你的指定,他仍然会自动扩大一倍。并不是限制了它的大小,Queue永远是无限大小的。

回答2:

初始化一个可能会用到的值,这样动态添加的时候就不用再分配底层数组了,如果队列加入的元素不超过长度,那么他会带来性能的提升