Кто потребляет больше памяти, ArrayList или HashSet / LinkedHashSet? - PullRequest
0 голосов
/ 15 ноября 2018

У меня очень большая коллекция, поэтому даже сравнительно небольшая разница в памяти может иметь значение.

или разница минимальна?

По-разному ли увеличивается потребление памяти, когда мы добавляем больше элементов?

Я считаю, что LinkedHashSet съедает больше памяти на N элементов, чем HashSet (для хранения ссылок на связанный список), но я не могу сравнить ArrayList с HashSet.

1 Ответ

0 голосов
/ 15 ноября 2018

Как правило, HashMap использует 32 байта на запись (12 байтов заголовка + 16 байтов данных + заполнение 4 байта).Он также будет использовать 4 * байта емкости, поэтому, когда все будет сказано и сделано, объект HashMap займет

32 * size + 4 * capacity bytes

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...