Кто-нибудь знает о классе Java для хранения байтов, который удовлетворяет следующим условиям?Эффективный расширяемый массив байтов Java, который позволяет получить доступ к байтам
- Хранит байты эффективно (т. Е. Не один объект на каждый байт).
- Растет автоматически, как
StringBuilder
. - Позволяет индексный доступ ко всем его байт (без копирования все к
byte[]
Я ничего не нашел до сих пор удовлетворяет этим конкретно:..
байт []: Не удовлетворяет 2.
ByteBuffer: Не удовлетворяет 2.
ByteArrayOutputStream: Не удовлетворяет 3.
ArrayList: Не удовлетворяет 1 (AFAIK, если нет какой-то особый случай-оптимизация).
Если я могу эффективно удалить байты с начала массива, это было бы хорошо. Если бы я писал это с нуля, я бы использовал его как-то вроде
{ ArrayList<byte[256]> data; int startOffset; int size; }
а затем очевидные функции. Что-то вроде этого существует?
[ByteArrayOutputStream] (http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html) –
Вы можете использовать 'byte []' plus 'ArrayUtils.add()': http://commons.apache.org/proper/commons- lang/javadocs/api-3.4/org/apache/commons/lang3/ArrayUtils.html # добавить% 28byte [],% 20byte% 29 или 'ArrayByteList' http://commons.apache.org/proper/commons-primitives/ apidocs/орг/Apache// коллекции фонда/примитивы/ArrayByteList.html –