我有一个byte []并希望将其复制到另一个byte [].也许我在这里展示我的简单'C'背景,但在Java中的字节数组上是否有等效的memcpy()?
Zak*_*aki 95
System.arraycopy(sourceArray,
sourceStartIndex,
targetArray,
targetStartIndex,
length);
Run Code Online (Sandbox Code Playgroud)
例,
String[] source = { "alpha", "beta", "gamma" };
String[] target = new String[source.length];
System.arraycopy(source, 0, target, 0, source.length);
Run Code Online (Sandbox Code Playgroud)
或者使用Arrays.copyOf()
示例,
target = Arrays.copyOf(source, length);
Run Code Online (Sandbox Code Playgroud)
java.util.Arrays.copyOf(byte[] source, int length)在JDK 1.6中添加了.
该copyOf()方法用于System.arrayCopy()制作数组的副本,但比clone()您可以复制数组的部分更灵活.
Tom*_*Tom 83
您可以尝试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));
Run Code Online (Sandbox Code Playgroud)
如果您只想要一维数组的精确副本,请使用clone().
byte[] array = { 0x0A, 0x01 };
byte[] copy = array.clone();
Run Code Online (Sandbox Code Playgroud)
对于其他阵列复制操作,请使用System.arrayCopy/ Arrays.copyOf作为Tom建议.
一般来说,clone应该避免,但这是规则的例外.
| 归档时间: |
|
| 查看次数: |
88776 次 |
| 最近记录: |