首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 陣列尋找最大值與最小值通用方法實作

     編輯:Java 相關知識

通用靜態方法

提供針對 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

擴展:支援泛型與 Comparable


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;
}

Java 8 Stream 寫法


int max = Arrays.stream(data).max().orElseThrow();
int min = Arrays.stream(data).min().orElseThrow();

效能提示

  • 單次遍歷 O(n),無法進一步優化(除非陣列已排序)。
  • 若頻繁查詢同一陣列極值,建議排序後緩存首尾元素,或使用優先隊列維護。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved