JavaSE-数组的复制方法

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 表示从源数组中复制除第一个和最后一个元素之外的所有元素。

综合起来,这句代码的作用是:

  1. arr 数组的索引 1 开始,复制 arr.length - 2 个元素。
  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 方法用于删除排序后的数组中的最大值和最小值,并计算剩下元素的平均值。

posted @ 2024-08-05 20:12  柒寒(平安)  阅读(19)  评论(0)    收藏  举报