我想把一个小数组复制到一个大数组中。例如:
String arr[] = new String[10];
现在我有另一个小数组
String arr1[] = new String[4];
我想将arr1
复制到arr
中,而不改变更大的数组长度。也就是说,arr
应该保持长度为10,并成功地复制所有元素。
请问有人可以告诉我如何实现吗?
我想把一个小数组复制到一个大数组中。例如:
String arr[] = new String[10];
现在我有另一个小数组
String arr1[] = new String[4];
我想将arr1
复制到arr
中,而不改变更大的数组长度。也就是说,arr
应该保持长度为10,并成功地复制所有元素。
请问有人可以告诉我如何实现吗?
试试这个:
System.arraycopy(arr1, 0, arr, 0, arr1.length);
arr
的大小不会改变(即 arr.length == 10
仍然为 true
),但只有前 arr1.length
个元素将被更改。如果您想要将 arr1
的元素复制到 arr
中的某个位置而不是第一个元素,请指定该位置:System.arraycopy(arr1, 0, arr, offset, arr1.length);
如果存在偏移量非常大以致于结果超出目标数组的末尾的可能性,那么您需要检查这一点以避免出现异常:
System.arraycopy(arr1, 0, arr, offset,
Math.max(0, Math.min(arr1.length, arr.length - offset - arr1.length)));
for(int i = 0; i < arr1.length(); ++i) {
arr[i] = arr1[i];
}
for (int i = 0; i < 4; i++) arr[i] = arr1[i];
arr
中超出arr1
长度的值,请执行以下操作:for(int i = 0; i < arr1.length(); i++){
if(i < arr.length()){ // Just in case arr isn't larger
arr[i] = arr1[i];
}
}
arr1
长度的arr
中的值,请执行以下操作:for(int i = 0; i < arr.length(); i++){
if(i < arr1.length()){ // Just in case arr isn't larger
arr[i] = arr1[i];
} else {
arr[i] = 0; // Or whatever default value you want here
}
}
for (int i = 0; i < 4; i++)
{
arr[i] = arr1[i];
}
会完成工作。