Я новичок в хронике-карте. Я пытаюсь смоделировать карту вне кучи, используя карту хроники, где ключ является примитивным коротким, а значение представляет собой примитивный длинный массив. Максимальный размер значения длинного массива известен для данной карты. Однако у меня будет несколько карт такого типа, каждая из которых может иметь различный максимальный размер для значения длинного массива. Мой вопрос касается сериализации/десериализации ключа и значения.
Из чтения документации я понял, что для ключа я могу использовать тип значения ShortValue и повторно использовать экземпляр реализации этого интерфейса. Что касается значения, я нашел страницу, в которой говорится о DataAccess и SizedReader, который дает пример для byte[], но я не уверен, как адаптировать его к long[]. Одно дополнительное требование, которое у меня есть, заключается в том, что мне нужно получать и устанавливать значения в произвольных индексах в длинном массиве, не оплачивая стоимость полной сериализации/десериализации всего значения каждый раз.
Итак, мой вопрос: как я могу смоделировать тип значения при построении карты и какой код сериализации/десериализации мне нужен для массива long[], если максимальный размер известен для каждой карты, и мне нужно иметь возможность читать и писать случайным образом индексы без сериализации/десериализации всей полезной нагрузки каждый раз? В идеале long[] должен кодироваться/декодироваться непосредственно в/из вне кучи без промежуточного преобразования в куче в byte[], а также код хроники-карты не будет выделяться во время выполнения. Спасибо.