提供針對 int[] 的最大值/最小值查找,回傳值而非索引,方便直接使用。
/**
* 取得陣列最大值
* @param args 整數陣列(長度 > 0)
* @return 最大值
* @throws IllegalArgumentException 若陣列為空
*/
public static int getMaxNum(int[] args) {
if (args == null || args.length == 0) {
throw new IllegalArgumentException("陣列不可為空");
}
int maxIdx = 0;
for (int i = 1; i < args.length; i++) {
if (args[i] > args[maxIdx]) maxIdx = i;
}
return args[maxIdx];
}
/**
* 取得陣列最小值
*/
public static int getMinNum(int[] args) {
if (args == null || args.length == 0) {
throw new IllegalArgumentException("陣列不可為空");
}
int minIdx = 0;
for (int i = 1; i < args.length; i++) {
if (args[i] < args[minIdx]) minIdx = i;
}
return args[minIdx];
}
int[] data = {5, 2, 9, 1, 7};
System.out.println("Max: " + getMaxNum(data)); // 9
System.out.println("Min: " + getMinNum(data)); // 1
public static > T getMax(T[] arr) {
if (arr == null || arr.length == 0) throw new IllegalArgumentException();
T max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i].compareTo(max) > 0) max = arr[i];
}
return max;
}
int max = Arrays.stream(data).max().orElseThrow();
int min = Arrays.stream(data).min().orElseThrow();