【java基础】获取数组中的最大值和最小值

1. 使用 stream

将一个数组放进 stream 里面,然后直接调用 stream 里的 min 或 max 函数得到最大值。

复制代码
    @Test
    public void index2(){
        int ages[] = {18 ,23 ,21 ,19 ,25 ,29 ,17};


        int maxNum = Arrays.stream(ages).max().getAsInt();

        System.out.println("最大值为:"+ maxNum);
    }
复制代码

 

2. 使用 collection

将数组转化为对象数组,即 int 转化为 Integer (需要使用数组转换)。 然后调用 Collection 里面的 min或max.

 

复制代码
    @Test
    public void index3(){
        int ages[] = {18 ,23 ,21 ,19 ,25 ,29 ,17};
        Integer newAges[] = new Integer[ages.length];

        for(int i=0;i<ages.length;i++) {
            newAges[i] = (Integer)ages[i];
        }
        int maxNum = Collections.max(Arrays.asList(newAges));
        System.out.println("最大值为:"+ maxNum);
    }
复制代码

 

3. 使用 Arrays 中的 sort

Arrays 类中的 sort 可以自动将一个数组排序,排序后数组中最后一个元素就是 最大值,缺点是会改变数组。

复制代码
    @Test
    public void index1(){
        int ages[] = {18 ,23 ,21 ,19 ,25 ,29 ,17};

        Arrays.sort(ages);
        int maxNum = ages[ages.length-1];

        System.out.println("最大值为:"+ maxNum);
    }
复制代码

 4.使用自定义函数

默认把第一个元素作为最大值,然后for循环,如果大于最大值,则进行替换。

复制代码
    public int getMaxAge()
    {
        int ages[] = {18 ,23 ,21 ,19 ,25 ,29 ,17};
        int max = ages[0];
        for(int i = 1;i<ages.length;i++){
            if(ages[i]>max){
                max = ages[i];
            }
        }
        return max;
    }
复制代码

 

posted @   KoMiles  阅读(18478)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2015-06-10 如何在linux环境下安装yaf
点击右上角即可分享
微信分享提示