我有一个byte[],想把它复制到另一个byte[]中。也许我在这里展示了我的简单的“C”背景,但是在Java中有没有与字节数组上的memcpy()等价的方法呢?
发布于 2010-07-25 20:25:13
您可以尝试System.arraycopy
或使用Arrays
类中的数组函数,如java.util.Arrays.copyOf
。这两者都应该在幕后给你带来原生的性能。
Arrays.copyOf可能对可读性有利,但它只是在Java1.6中引入的。
byte[] src = {1, 2, 3, 4};
byte[] dst = Arrays.copyOf(src, src.length);
System.out.println(Arrays.toString(dst));
发布于 2010-07-25 20:28:37
System.arraycopy(sourceArray,
sourceStartIndex,
targetArray,
targetStartIndex,
length);
例如,
String[] source = { "alpha", "beta", "gamma" };
String[] target = new String[source.length];
System.arraycopy(source, 0, target, 0, source.length);
或者使用Arrays.copyOf()
例如,
target = Arrays.copyOf(source, length);
java.util.Arrays.copyOf(byte[] source, int length)
是在JDK1.6中添加的。
copyOf()
方法使用System.arrayCopy()
复制数组,但比clone()
更灵活,因为您可以复制数组的各个部分。
发布于 2010-07-25 20:25:48
您可以使用System.arrayCopy。它将元素从源数组复制到目标数组。Sun实现使用手工优化的汇编程序,因此速度很快。
https://stackoverflow.com/questions/3329163
复制相似问题