ArrayList‹MyClass› против MyClass[26]?

мне нужно хранить 26 объектов в массиве. может быть меньше, но не больше. Будет ли arrayList занимать больше места, чем массив из 26 объектов?


person shashu10    schedule 22.07.2011    source источник
comment
Это очень похожий вопрос stackoverflow.com/questions/412813/   -  person inspite    schedule 22.07.2011


Ответы (2)


Вы задаете неправильный вопрос. Вопрос о том, может ли ArrayList занимать немного больше места, чем обычный старый массив, не имеет значения.

Вопрос, на который вам действительно нужно ответить, чтобы решить, какой из них использовать, заключается в том, понадобится ли вам когда-нибудь динамически изменять размер массива.

Если массив будет содержать только 26 объектов за все время его существования, вам, вероятно, следует придерживаться старого простого массива: myArray[26].

Но если есть шанс, что вам нужно динамически изменять размер массива, изменяя количество содержащихся в нем элементов, тогда вам определенно нужно использовать реализацию ArrayList, независимо от того, может ли это занять немного времени больше пространства. В этом случае гораздо важнее гибкость, которая значительно перевешивает любые потенциально связанные с этим затраты.

Другой случай, когда вы захотите использовать ArrayList вместо простого массива, — это когда вам нужен класс, реализующий IList интерфейс.

Но имейте в виду, что класс ArrayList, вероятно, должен быть признан устаревшим в более поздних версиях .NET Framework. Пространство имен System.Collections.Generic предоставляет набор общих классы коллекций, которые гораздо более производительны и предпочтительнее, чем ArrayList. В этом случае вы, вероятно, захотите использовать класс List<T>, где T это класс объектов, которые вы хотите сохранить в указанном массиве.

person Cody Gray    schedule 22.07.2011

Это не может занять меньше... Я думаю, что это может занять больше, в зависимости от того, как они делают изменение размеров. Чтобы уточнить, если вы храните менее 26 элементов, списки массивов могут быть лучше... Если вы храните 26, списки массивов не могут быть лучше и, вероятно, хуже.

person Patrick87    schedule 22.07.2011
comment
Благодарю. Я думаю, что я плохо придерживаюсь arraylist. Я думаю, что у меня в среднем может быть 15 объектов. - person shashu10; 22.07.2011