мне нужно хранить 26 объектов в массиве. может быть меньше, но не больше. Будет ли arrayList занимать больше места, чем массив из 26 объектов?
ArrayList‹MyClass› против MyClass[26]?
Ответы (2)
Вы задаете неправильный вопрос. Вопрос о том, может ли ArrayList
занимать немного больше места, чем обычный старый массив, не имеет значения.
Вопрос, на который вам действительно нужно ответить, чтобы решить, какой из них использовать, заключается в том, понадобится ли вам когда-нибудь динамически изменять размер массива.
Если массив будет содержать только 26 объектов за все время его существования, вам, вероятно, следует придерживаться старого простого массива: myArray[26]
.
Но если есть шанс, что вам нужно динамически изменять размер массива, изменяя количество содержащихся в нем элементов, тогда вам определенно нужно использовать реализацию ArrayList
, независимо от того, может ли это занять немного времени больше пространства. В этом случае гораздо важнее гибкость, которая значительно перевешивает любые потенциально связанные с этим затраты.
Другой случай, когда вы захотите использовать ArrayList
вместо простого массива, — это когда вам нужен класс, реализующий IList
интерфейс.
Но имейте в виду, что класс ArrayList
, вероятно, должен быть признан устаревшим в более поздних версиях .NET Framework. Пространство имен System.Collections.Generic
предоставляет набор общих классы коллекций, которые гораздо более производительны и предпочтительнее, чем ArrayList
. В этом случае вы, вероятно, захотите использовать класс List<T>
, где T
это класс объектов, которые вы хотите сохранить в указанном массиве.
Это не может занять меньше... Я думаю, что это может занять больше, в зависимости от того, как они делают изменение размеров. Чтобы уточнить, если вы храните менее 26 элементов, списки массивов могут быть лучше... Если вы храните 26, списки массивов не могут быть лучше и, вероятно, хуже.