Я думал об оптимизации двух моих последних технологий хранения данных в Java и хотел бы знать , который действительно является наиболее эффективным с точки зрения памяти .Ниже приведены описания двух классов.В качестве аргумента предположим, что они имеют одинаковые методы взаимодействия с данными, которые позволяют пользователю получать или устанавливать состояние любого из битов индивидуально или по диапазону с помощью следующих методов:
public boolean getBitState(byte bitIndex)
- Обнаруживает и возвращает состояние бита с индексом
bitIndex
public Clazz setBitState(byte bitIndex, boolean newState)
- Устанавливает состояние битапо индексу
bitIndex
до newState
и возвращает результирующий объект
public int getStateOfBits(byte startIndex, byte endIndex)
- Обнаруживает и возвращает состояние всех битов между
startIndex
и endIndex
как int
public Clazz setStateOfBits(byte startIndex, byte endIndex, int newState)
- Устанавливает состояние всех битов между
startIndex
и endIndex
равным значению, указанному в newState
. - Если у
newState
меньше битов, чем умещается, это делается для подгонки путем добавления нулей слева - Если
newState
имеет больше битов, чем умещается, избыточные биты (слевасторона) обрезаны
Это классы, которые я создал для использования этого интерфейса:
IntArray
Этот класс использует int
как способ хранения 32-битных данных через побитовые функции.
Array32
Этот класс использует массив 32 boolean
как способ хранения 32-битных данных через стандартные взаимодействия массивов.