欢迎访问宙启技术站
智能推送

查找数组中的最大值和最小值的Java函数

发布时间:2023-06-21 09:54:03

在Java中,有多种方式可以查找数组中的最大值和最小值。下面将介绍几种常用的方法:

1. 遍历数组

遍历数组是最简单、也是最容易理解的方法。我们可以使用for循环遍历整个数组,并通过比较来找到最大值和最小值。示例代码如下:

public static void findMaxAndMin(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];
        }
    }
    System.out.println("最大值为:" + max);
    System.out.println("最小值为:" + min);
}

2. Arrays类

Java提供了Arrays类,该类包含一些有用的方法,例如排序、比较和查找数组元素。其中,最有用的方法是Arrays.sort()和Arrays.binarySearch()。我们可以使用Arrays.sort()方法对数组进行排序,然后使用数组的 个和最后一个元素作为最小值和最大值。示例代码如下:

public static void findMaxAndMin(int[] arr){
    Arrays.sort(arr);
    int min = arr[0];
    int max = arr[arr.length - 1];
    System.out.println("最小值为:" + min);
    System.out.println("最大值为:" + max);
}

3. Collections类

Collections是Java集合框架中的一个工具类,提供了诸如排序、查找和修改集合等方法。我们可以使用Collections.max()和Collections.min()方法查找ArrayList和LinkedList中的最大值和最小值,但是该方法不能用于数组。因此,我们需要使用Arrays.asList()方法将数组转换为ArrayList,然后进行查找。示例代码如下:

public static void findMaxAndMin(int[] arr){
    List<Integer> list = Arrays.asList(arr);
    int max = Collections.max(list);
    int min = Collections.min(list);
    System.out.println("最大值为:" + max);
    System.out.println("最小值为:" + min);
}

4. Stream API

Java 8 引入了Stream API,该API允许按需处理集合中的元素。我们可以使用Stream API的max()和min()方法查找数组中的最大值和最小值。示例代码如下:

public static void findMaxAndMin(int[] arr){
    int max = Arrays.stream(arr).max().getAsInt();
    int min = Arrays.stream(arr).min().getAsInt();
    System.out.println("最大值为:" + max);
    System.out.println("最小值为:" + min);
}

5. 使用IntSummaryStatistics

IntSummaryStatistics 类提供了十分强大的汇总int元素的工具供用户使用,例如 最大值、最小值、平均数、数量,以及和。示例代码如下:

    public static void findMaxAndMin(int[] arr){
        IntSummaryStatistics stats = Arrays.stream(arr).summaryStatistics();
        int max = stats.getMax();
        int min = stats.getMin();

    System.out.println("最小值为:" + min);
    System.out.println("最大值为:" + max);
}

结论:

以上几种方式,本应用场景数组长度都不大,所以各种情况下耗时基本上相差无几,对比来看,数组遍历的方式最为通用,也最为简单。除此之外,Stream API也相当的方便,可以轻松的获取 min() 和 max()。 其它方式可以视情况而定。