练习——封装一个求数组最大值的函数
需求
封装一个方法,接收一个整数数组作为参数,返回该数组中的最大值,并且可以重复多次调用。
示例代码
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)
Previous: 方法之间的调用
Next: 练习——获取随机字符数组