Я хочу знать, что такое начальный размер ArrayList в C#?Каков первоначальный размер ArrayList в C#?
ответ
0
. Смотри ниже.
16
. (Я должен добавить символы к этому ответу, так как 18 символов минимальны)
Edit, Oops - начальная мощность 16. Начальный размер, конечно, 0, потому что она пуста. Придется научиться читать. Или вам нужно научиться формировать свои вопросы. ;)
Редактировать снова; Начальная емкость ArrayList в .NET 1.0 равна 16. В 2.0 это было 4, а теперь - с .NET 3.5 - начальная capacty была понижена до 0. У меня нет объяснения, почему, ты.
При добавлении первого элемента в список емкость будет установлена на 4. Там, после, каждый раз, когда arraylist.Count eq arraylist.Capacity, емкость удваивается.
Это объясняет мои различные наблюдения здесь. Weird. – Joey
У вас есть источник/ссылка для размеров емкости .NET 2.0 и 3.5? Интересно узнать больше об этом ... Я думал, что все равно 16. –
Нет, не могу найти его в MSDN или объяснении MS для этого. –
ПРИМЕЧАНИЕ: Следующие, по-видимому, справедливы только для .NET 3.5; в предыдущих версиях рамки значения были разными.
По моим тестам здесь как начальный размер и мощность равны нулю:
PS> $a = new-object system.collections.arrayList
PS> $a.Capacity
0
PS> $a.count
0
Кроме того, глядя на исходный код в отражатель, то же самое справедливо:
public virtual int Capacity
{
get
{
return this._items.Length;
}
...
}
И _items
получает установить на пустой object[]
в ctor.
Вы правы, так как начиная с .NET 3.5 начальная емкость была снижена до 0. В .NET 1.0 это было 16. Я обновил свой ответ и повышу ваш. ;) –
Мне нужно узнать мне PowerShell. Это очень удобно. –
ArrayList list = new ArrayList();
размер = 0 перед добавлением элементов в массивList, означает, что нет элементов.
ArrayList пуст, когда вы его создали, поэтому размер равен нулю.
Если вы не застряли в каркасе 1, вы не должны использовать класс ArrayList
. Вместо этого используйте строго типизированный общий класс List<T>
.
Попробуйте сами.
int capacity = (new ArrayList()).Capacity;
должен предоставить вам начальную емкость.
ArrayList начинается с Размер = 0 (поскольку он пустой) и емкость = 16.
Емкость вдвое по мере необходимости, и наращивание Удвоение является операцией О (п), где п новый вместимость. Итак, если вы вставляете 5000 элементов в свой список, структура будет удваивать емкость ArrayList девять раз - и каждая операция удвоения вдвое дороже предыдущей.
Другими словами - если вы знаете, что собираетесь разместить 5000 элементов в списке, вам гораздо лучше будет инициализировать его, чтобы удерживать 5000 элементов.
Вы можете явно указать Емкость существующего arraylist, если знаете, что собираетесь вставить большое количество элементов. Вы также можете уменьшить емкость явно, но если вы установите значение Capacity < Count, вы получите исключение ArgumentOutOfRange.
Очень хорошо объяснено – Quagmire
Хотя каждая операция удвоения вдвое дороже предыдущей, она бывает вдвое чаще. Это приводит к тому, что амортизационная стоимость каждой вставки является постоянной, и поэтому вставка n элементов - O (n) в целом. Да, вам лучше распределить вещь на нужный размер, если она будет большой, но даже если вы этого не сделаете, общая сумма дополнительных расходов довольно мала. Другая стоимость, которую вы пренебрегаете, заключается в том, что в среднем список отходов составляет четверть от его пропускной способности. –
- 1. Каков первоначальный размер массива в архитектуре HashMap?
- 2. Каков первоначальный размер картриджа OpenShift от MongoDB?
- 3. Каков первоначальный размер недавно созданной базы данных в SQL Server?
- 4. Каков размер памяти ArrayList в Java
- 5. Каков размер перечисления в C?
- 6. C++: первоначальный указатель
- 7. Каков первоначальный тайм-аут пересылки для TCP?
- 8. Размер arraylist arraylist
- 9. Каков размер sizeof (vector)? C++
- 10. Objective C- Каков нормальный размер
- 11. Xcode Swift первоначальный вид неправильно размер
- 12. Каков фактический размер структуры в C
- 13. Каков максимальный размер строки в C#?
- 14. Каков размер ключа для TripleDES в C#?
- 15. Каков максимальный размер массива в C?
- 16. Если отсортированная коллекция ArrayList расширяет свой первоначальный размер, становится ли она несортированной?
- 17. Каков первоначальный каталог в локальной базе данных SQL Server?
- 18. Arraylist arraylist ... в C#
- 19. Каков процесс выполнения ArrayList?
- 20. Каков размер char []?
- 21. Каков размер урока?
- 22. Коллекции сортируются по копии Arraylist (чтобы сохранить первоначальный порядок)
- 23. Каков размер int в Python?
- 24. Каков размер (в памяти) числа?
- 25. Каков размер объекта в Java
- 26. C++: Каков размер объекта пустого класса?
- 27. Рассчитать первоначальный размер набора после возникновения столкновений с хэшем
- 28. Каков размер GLSL boolean
- 29. Размер печати ArrayList в Java
- 30. Размер ArrayList не в logcat
Это может указывать на очевидное, но если вы не используете .NET 1.x, вы должны использовать List. –
Ваше приложение должно зависеть от этого. Если вы знаете, что у вас есть верхний предел элементов, а производительность - проблема, инициализируйте контейнер с этим лимитом, в противном случае полагайтесь на его возможности автоматического определения размера. –