实现思路
将数组首元素同时作为最大值和最小值的基准,从第二个元素开始遍历,利用比较运算符同时更新最大值和最小值。
具体代码
public class Test{
public static void main(String[] args) {
int[] numbers = {3, 1, 4, 1, 5, 9, 2, 6};
int[] result = findMinMax(numbers);
System.out.println("数组内容: " + arrayToString(numbers));
System.out.println("最大值: " + result[0]);
System.out.println("最小值: " + result[1]);
}
/**
* 查找数组中的最大值和最小值
* @param array 输入的整型数组
* @return 包含两个元素的数组:第一个元素为最大值,第二个为最小值
* @throws IllegalArgumentException 如果数组为空或长度为0
*/
public static int[] findMinMax(int[] array) {
if (array == null || array.length == 0) {
throw new IllegalArgumentException("输入数组不能为空");
}
int max = array[0];
int min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
if (array[i] < min) {
min = array[i];
}
}
return new int[]{max, min};
}
// 将数组转换为字符串
private static String arrayToString(int[] array) {
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < array.length; i++) {
sb.append(array[i]);
if (i < array.length - 1) {
sb.append(", ");
}
}
sb.append("]");
return sb.toString();
}
}