Java中是否有与memcpy()等效的?
我有一个字节[],并希望将其复制到另一个字节[]中。也许我在这里展示了我简单的“C”背景,但是Java中的字节数组上是否有相当于memcpy()的上下文?
我有一个字节[],并希望将其复制到另一个字节[]中。也许我在这里展示了我简单的“C”背景,但是Java中的字节数组上是否有相当于memcpy()的上下文?
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)
在 JDK 1.6 中添加。
该方法用于制作数组的副本,但比您可以制作数组各部分的副本更灵活。copyOf()
System.arrayCopy()
clone()
您可以尝试 System.arraycopy
或使用 Arrays
类中的数组函数,如 。两者都应该在引擎盖下为您提供本机性能。java.util.Arrays.copyOf
Arrays.copyOf可能有利于可读性,但仅在java 1.6中引入。
byte[] src = {1, 2, 3, 4};
byte[] dst = Arrays.copyOf(src, src.length);
System.out.println(Arrays.toString(dst));