在Java中是否存在与memcpy()等效的内容?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我有一个字节[],并想复制到另一个字节[]。也许我在这里展示了我简单的'C'背景,但是在Java的字节数组中有没有等同于memcpy()的?

提问于
用户回答回答于

您可以尝试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));
用户回答回答于

使用System.arraycopy()

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()您可以复制数组的某些部分更灵活。

扫码关注云+社区