1 год назад
Java 857. Оцените количество памяти на хранение одного примитива типа byte в ArrayList?
Для каждого элемента типа byte в ArrayList будет выделена одна ячейка массива, которая хранит само значение byte. Таким образом, затраты памяти для хранения одного значения типа byte в ArrayList зависят от размера самой ячейки массива и используемой виртуальной машиной Java (JVM) архитектуры. Размер ячейки массива для примитивного типа byte составляет 1 байт. Однако, следует учитывать, что списки в Java дополнительно занимают некоторый объём памяти на управление списком, такие как: размер списка и емкость массива...
304 читали · 1 год назад
Java 881. Почему нельзя использовать byte[] в качестве ключа в HashMap?
Byte-массивы (byte[]) могут использоваться в качестве ключей в HashMap, но при этом необходимо учитывать особенности работы с данными массивами. В Java, для сравнения объектов используется метод equals(), который по умолчанию сравнивает ссылки на объекты. Если два byte-массива созданы отдельно друг от друга, то ссылки на них будут различными, даже если содержимое массивов одинаковое. Поэтому, если использовать byte-массивы в качестве ключей в HashMap, то для корректной работы необходимо переопределить методы equals() и hashCode(), чтобы они сравнивали содержимое массивов, а не ссылки на них...