I have a byte[] and would like to copy it into another byte[]. Maybe I am showing my simple 'C' background here, but is there an equivalent to memcpy() on byte arrays in Java?
arraycopy() method copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array. A subsequence of array components are copied from the source array referenced by src to the destination array referenced by dest.
Arrays are used to store multiple values in a single variable, instead of declaring separate variables for each value.
Use System.arraycopy()
System.arraycopy(sourceArray, sourceStartIndex, targetArray, targetStartIndex, length);
Example,
String[] source = { "alpha", "beta", "gamma" }; String[] target = new String[source.length]; System.arraycopy(source, 0, target, 0, source.length);
or use Arrays.copyOf()
Example,
target = Arrays.copyOf(source, length);
java.util.Arrays.copyOf(byte[] source, int length)
was added in JDK 1.6.
The copyOf()
method uses System.arrayCopy()
to make a copy of the array, but is more flexible than clone()
since you can make copies of parts of an array.
You might try System.arraycopy
or make use of array functions in the Arrays
class like java.util.Arrays.copyOf
. Both should give you native performance under the hood.
Arrays.copyOf is probably favourable for readability, but was only introduced in java 1.6.
byte[] src = {1, 2, 3, 4}; byte[] dst = Arrays.copyOf(src, src.length); System.out.println(Arrays.toString(dst));
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