实例 042 获取一维数组最小值

发布时间 2023-05-04 18:07:51作者: 两拳ko小yu

  你可以使用以下代码来获取一维数组中的最小值:

int[] arr = {5, 3, 9, 1, 7};
int min = arr[0];

for (int i = 1; i < arr.length; i++) {
    if (arr[i] < min) {
        min = arr[i];
    }
}

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

  在上面的代码中,我们首先初始化了一个名为arr的整数数组,并将一些值存入其中。然后,我们初始化一个min变量,并将其设置为数组中的第一个元素。

  之后,我们使用了一个for循环来遍历数组中的剩余元素。在每次迭代时,我们检查当前元素是否小于min变量的值。如果是,则将min更新为该元素。

  最后,我们输出最小值 min 的计算结果。

  总体而言,在上面代码实现基础上可以考虑加入如下判断条件:

if(arr == null || arr.length==0) {
    return -1; // 数组为空或者长度为零返回-1表示不存在最大值;
}

  这样即可对输入进行特殊情况处理并增强程序健壮性

最简洁的方法是使用Java 8引入的Stream API,通过一行代码实现查找最小值。

代码如下:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] nums = {3, 5, -2, 10};
        
        // 使用Arrays.stream()将int数组转换为IntStream流,并调用min()获取最小值。
        int minValue = Arrays.stream(nums).min().getAsInt();

         System.out.println("The minimum value is: " + minValue); // 输出:The minimum value is: -2

    }
}

这种方式不需要创建新对象或进行数据类型转换,也没有副作用(比如改变原始数组顺序),并且非常简洁。但是由于要涉及到Lambda表达式和函数式编程概念,在理解上可能会有些困难。