ArrayList
- это, по сути, обертка вокруг object[]
, с функциональностью, позволяющей отслеживать пространство в массиве и увеличивать его (удваивать) по мере необходимости.Обратите внимание, что обычно List<T>
предпочтительнее, но для ответа на вопрос: да, он просто хранит ссылки на object
s, которые вполне могут быть в штучной упаковке.
A List<T>
довольнопочти то же самое, но около T[]
, что означает, что типы значений могут храниться без упаковки.Типы ссылок по-прежнему хранятся в виде ссылок.Вы также получаете больше безопасности типа;то есть вы не можете добавить неправильную вещь или отыграть полученный предмет неправильно.