arraycopy方法(将元素复制)
这句代码使用了 System.arraycopy
方法,用于将一个数组中的元素复制到另一个数组中。具体来说,这句代码的作用是从原数组 arr
中删除第一个元素和最后一个元素,并将剩下的元素复制到新数组 newArr
中。
以下是对这句代码的详细解释:
System.arraycopy(arr, 1, newArr, 0, arr.length - 2);
CopyInsert
arr
:源数组,即要从中复制元素的数组。1
:源数组的起始位置。这里从索引1
开始复制,表示跳过第一个元素。newArr
:目标数组,即要将元素复制到的数组。0
:目标数组的起始位置。这里从索引0
开始复制,表示新数组的起始位置。arr.length - 2
:要复制的元素数量。这里arr.length - 2
表示从源数组中复制除第一个和最后一个元素之外的所有元素。
综合起来,这句代码的作用是:
- 从
arr
数组的索引1
开始,复制arr.length - 2
个元素。 - 将这些元素复制到
newArr
数组中,从索引0
开始。
这样就实现了删除 arr
数组中的第一个和最后一个元素,并将剩下的元素存储到 newArr
数组中。
完整代码示例:
public class Eg1_Singer {
// 编写排序方法;
public static void Bsort(int[] arr) {
// 使用冒泡排序算法对数组进行排序
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int[] arr = {90, 78, 90, 96, 67, 86, 78, 92, 79, 85};
Bsort(arr);
System.out.println("排序后的数组为:" + Arrays.toString(arr));
// 删除最大元素和最小元素
int[] newArr = new int[arr.length - 2];
System.arraycopy(arr, 1, newArr, 0, arr.length - 2);
// 计算剩下的元素的平均值
double sum = 0;
for (int index = 0; index < newArr.length; index++) {
sum += newArr[index];
}
double average = sum / newArr.length;
System.out.println("删除最大和最小元素后的平均值是:" + average);
}
}
在这个示例中,System.arraycopy
方法用于删除排序后的数组中的最大值和最小值,并计算剩下元素的平均值。