![]() |
1
4
这是将项目添加到列表的实际源代码,您可以在此处找到该列表 list.cs - Reference Source - Microsoft
总之,它每次都将容量翻倍,这意味着它实际上只将数组扩展有限的次数。执行此操作将创建一个新数组,并使用
举个例子,这里有一个包含100000000个元素的字节数组,它在75毫秒内复制它。还要记住,在达到.NET的最大数组限制之前,它最多只能增长32倍。
如果这真的是任务关键型的东西,并且您想要节省垃圾收集器和大型对象堆上的分配和内存压力,那么只需创建一个容量设置足够大的列表(或者一个数组),然后重用它。不过,在我看来,可能还有其他事情需要你首先担心。 |
![]() |
2
1
正如MichaelRandall在他精彩的回答(upvote)中指出的,实际问题的答案是肯定的。然而,即使我们知道一个列表变大会减慢添加项目的速度,我们仍然有一个问题。您可以创建列表列表。 为了简单起见,我将“外部列表”称为列表列表,“内部列表”称为外部列表中的列表。您将首先创建第一个内部列表,并让项目进入它,直到它变得相当大,比如说,10000个元素。然后,创建下一个内部列表,新项目将放在那里,直到达到极限。一天又一天。这意味着在一天结束时,你可能会有300个列表,每个列表有10000个元素。这会使你的工作稍微复杂一点,但是当你向它添加项目时,它会让你的性能下降。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
The Great · 拆分并存储数据帧,但名称基于特定列中的唯一值 2 年前 |
![]() |
Klimt865 · Python中的列表列表 2 年前 |
![]() |
Klimt865 · 在Python中将数组列表转换为列表列表 2 年前 |