Какой эффективный класс байтовых векторов с изменяемым размером и произвольным доступом в Java?

Я пытаюсь найти класс для хранения вектора байтов в Java, который поддерживает: произвольный доступ (так что я могу получить или установить байт где угодно), изменение размера (так что я могу либо добавить что-то в конец, либо вручную изменить размер), разумную эффективность (я может хранить мегабайты данных в этих штуках), все в памяти (у меня нет файловой системы). Есть предложения?

Пока кандидатами являются:

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

Это кажется таким странным упущением, что я уверен, что я , должно быть, где-то что-то упустил. Я просто понимаю, что. Что мне не хватает?

5
задан David Given 1 October 2011 в 17:49
поделиться