Я пытаюсь найти класс для хранения вектора байтов в Java, который поддерживает: произвольный доступ (так что я могу получить или установить байт где угодно), изменение размера (так что я могу либо добавить что-то в конец, либо вручную изменить размер), разумную эффективность (я может хранить мегабайты данных в этих штуках), все в памяти (у меня нет файловой системы). Есть предложения?
Пока кандидатами являются:
байт []
. Размер не может быть изменен. java.util.Vector
. Evil. Также крайне неэффективно. java.io.ByteArrayOutputStream
. Не с произвольным доступом. java.nio.ByteBuffer
. Не изменяемый размер. org.apache.commons.collections.primitives.ArrayByteList
. Не изменяемый размер. Что странно, потому что он автоматически изменит размер, если вы добавите к нему что-то, вы просто не можете изменить размер явно! java.nio.channels.FileChannel
. Не могу найти. (Помните, у меня нет файловой системы.) Это кажется таким странным упущением, что я уверен, что я , должно быть, где-то что-то упустил. Я просто понимаю, что. Что мне не хватает?