Java makes me sad since it needs wrapper classes for ArrayList
s. How would I go about adding a byte[]
to a ArrayList<Byte[]>
?
A byte in Java is 8 bits. It is a primitive data type, meaning it comes packaged with Java. Bytes can hold values from -128 to 127. No special tasks are needed to use it; simply declare a byte variable and you are off to the races.
The recommended solution to concatenate two or more byte arrays is using ByteArrayOutputStream . The idea is to write bytes from each of the byte arrays to the output stream, and then call toByteArray() to get the current contents of the output stream as a byte array.
Similarly, the BigInteger class has a longValue() method to convert a byte array to a long value: long value = new BigInteger(bytes). longValue();
Arrays. fill(). This method assigns the required byte value to the byte array in Java.
LOL thought I had to wrap everything. ArrayList<byte[]>
works. Thanks Yishai.
You have to wrap any primitives to use them in a context that requires an object. But a byte[] is not a primitive. It's an array of bytes, and an array is an object.
Just to clarify: Do you really want an ArrayList of arrays of bytes, i.e. effectively a two-dimensional array? Or do you really simply want an ArrayList of bytes? In that case, you would have to wrap the bytes in Bytes to put them in the ArrayList.
Just for the purpose of others searching for this, if you have Apache Commons on your classpath, you can do something like the following to get Byte[]
back (documentation]:
Byte[] result = ArrayUtils.toObject(byte[]);
ArrayList works only, if you do not require the results of hashCode() and equals() on this list.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With