我想将一个小数组复制到一个较大的数组中.例如:
String arr[] = new String[10];
Run Code Online (Sandbox Code Playgroud)
现在我有另一个小阵列
String arr1[] = new String[4];
Run Code Online (Sandbox Code Playgroud)
我想复制arr1到arr而不改变较大的数组的长度.即arr应该保持10的长度并且应该成功复制所有元素.
谁能告诉我怎么能这样做?
Ted*_*opp 27
试试这个:
System.arraycopy(arr1, 0, arr, 0, arr1.length);
Run Code Online (Sandbox Code Playgroud)
大小arr不会改变(即arr.length == 10仍然是true),但只会改变第一个arr1.length元素.如果您希望将元素arr1复制到arr第一个元素以外的某个位置,只需指定where:
System.arraycopy(arr1, 0, arr, offset, arr1.length);
Run Code Online (Sandbox Code Playgroud)
如果偏移量可能很大,结果将从目标数组的末尾运行,则需要检查以避免异常:
System.arraycopy(arr1, 0, arr, offset,
Math.max(0, Math.min(arr1.length, arr.length - offset - arr1.length)));
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,只需遍历小数组并将它们添加到大数组中即可。
for(int i = 0; i < arr1.length(); ++i) {
arr[i] = arr1[i];
}
Run Code Online (Sandbox Code Playgroud)
这似乎是一个非常简单的问题:
for (int i = 0; i < 4; i++) arr[i] = arr1[i];
Run Code Online (Sandbox Code Playgroud)