Я пытаюсь найти простой способ создания изменяемого байтового массива, который может автоматически добавлять любой примитивный тип данных Java. Я искал, но не мог найти ничего полезного.Структура данных изменяемого байтового массива Java
Я ищу что-то вроде этого
ByteAppender byteStructure = new ByteAppender();
byteStructure.appendInt(5);
byteStructure.appendDouble(10.0);
byte[] bytes = byteStructure.toByteArray();
Существует ByteByffer
, который является большим, но вы должны знать размер буфера перед тем, как начать, что не будет работать в моем случае. Существует аналогичная вещь (StringBuilder) для создания строк, но я не могу найти ее для Bytes.
Я думал, что это будет очевидно на Java.
Почему вы не можете использовать 'ArrayList' и использовать' .toArray() 'впоследствии? –
@JoshM, скорость в основном. У меня есть набор упорядоченных элементов, и для примитивных типов я просто использую их байты. Но для строк мне нужно вычислить их длину и преобразовать их в массив байтов. Если мне сначала нужно вычислить размер массива байтов, тогда я должен дважды перебирать список, вычисляя размер на первом проходе, а затем переводить на второй. – Jason
@JeroenVannevel, ArrayList не принимает примитивные типы в качестве входных данных, поэтому мне пришлось бы постоянно делать что-то вроде этого: 'ByteBuffer.allocate (4) .putInt (yourInt) .array();', а затем 'for (Byte b: bytes) arrayBytes.add (b); '. Это выполнимо, но очень грязно. –
Jason