练习——封装一个求数组最大值的函数

练习——封装一个求数组最大值的函数

需求

封装一个方法,接收一个整数数组作为参数,返回该数组中的最大值,并且可以重复多次调用。

示例代码

public static void main(String[] args) {
    int[] a = {1, 4, 34, 5, 56, 34, 3, 23, 443, 634, 234, 346, 2, 23, 2};
    int max = getMax(a);
    System.out.println(max);

    int[] a2 = {1, 4, 34, 5, 56, 34, 3, 23, 443};
    max = getMax(a2);
    System.out.println(max);
}

public static int getMax(int[] arr) {
    int max = arr[0];
    for (int i = 1; i < arr.length; i++) {
        if (max < arr[i]) {
            max = arr[i];
        }
    }
    return max;
}Code language: JavaScript (javascript)

输出结果:

634
443

方法定义解析

组成部分说明
修饰符public static
返回值类型int,返回最大值
方法名getMax,见名知意
参数int[] arr,接收整数数组
方法体假设第一个元素为最大值,遍历比较更新
return返回最终的最大值

调用方式

int[] a = {1, 4, 34, 5, 56};
int max = getMax(a);           // 第一次调用
int max2 = getMax(new int[]{7, 8, 9}); // 第二次调用,匿名数组Code language: JavaScript (javascript)

注意事项

要点说明
空数组防护若 arr 可能为 null 或长度为 0,需提前判断,否则会抛异常
全负数数组初始化 max = arr[0] 即可正确处理,无需改为 Integer.MIN_VALUE
引用类型参数数组是引用类型,方法内若修改数组元素会影响外部原数组(但本方法只读取不修改)
可复用性封装后可在程序的任何地方反复调用,无需重复编写比较逻辑

扩展:同时返回最大值和最小值

public static int[] getMaxAndMin(int[] arr) {
    int max = arr[0];
    int min = arr[0];
    for (int i = 1; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    return new int[]{max, min}; // 返回数组携带两个结果
}Code language: PHP (php)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注