Menu
CoddyTech

数组方法

本课属于 Coddy Java 学习旅程的“基础知识”单元。第 61 课,共 73 课。

Arrays 类(来自 java.util)提供了许多用于处理数组的辅助方法。要调用其中一个方法,请写:

Arrays.methodName(arrayName, otherParameters)

以下是基本方法的列表:

  • fill(array, value) - 用指定的值填充数组
  • toString():将数组转换为字符串
  • sort(array):按升序对数组进行排序
  • equals(array1, array2):比较两个数组,判断它们是否相等

下面是一个使用 fill 方法和 toString 的示例:

int[] numbers = new int[5];
Arrays.fill(numbers, 10);
System.out.println(Arrays.toString(numbers));

这将输出 [10, 10, 10, 10, 10]。

sort 方法的示例:

int[] numbers = {5, 2, 9, 1, 5, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));

这将输出 [1, 2, 5, 5, 6, 9]。

challenge icon

挑战

简单

创建一个名为 merge 的方法,接收两个数组作为参数。该方法将两个数组合并为一个已排序的数组并返回。

重要:最终合并后的数组必须按升序排序。

例如,以下参数:merge(new String[] {"1", "4", "2"}, new String[] {"2", "5", "9"}) 将返回 ["1", "2", "2", "4", "5", "9"](注意,结果已经排序)

使用 System.arraycopy() 将元素从一个数组复制到另一个数组。语法如下: 

System.arraycopy(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition, length)

System.arraycopy() 只能复制到已存在的数组中,不会扩展目标数组。先创建一个包含 arr1.length + arr2.length 个位置的合并数组,将 arr1 复制到位置 0,然后从位置 arr1.length 开始复制 arr2。

例如:

// Source array
String[] sourceArray = {"1", "2", "3", "4", "5"};
        
// Destination array
String[] destinationArray = new String[5];
        
// Copy elements from sourceArray to destinationArray
System.arraycopy(sourceArray, 0, destinationArray, 0, 5);

复制后的目标数组:1 2 3 4 5

亲手试试

import java.util.Arrays;
import java.util.Scanner;


public class Main {
    public static String[] merge(String[] arr1, String[] arr2) {
        // 在这里编写代码
        return null;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String textArr1 = scanner.nextLine();
        String textArr2 = scanner.nextLine();
        String[] arr1 = textArr1.split(",");
        String[] arr2 = textArr2.split(",");

        String[] mergedArray = merge(arr1, arr2);
        System.out.println(Arrays.toString(mergedArray));
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Java 在线编译器