A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 @克俊 于 2013-10-19 22:42 编辑

如何以重载的形式获取double类型数组的最大值呢?

各位黑马师兄师姐:
求教一个问题。

我在自学到我毕老师的”Java基础视频教程第04天-03-数组(常见操作-获取最值)”视频的过程中,遇到另外一个问题,自己搞不定了。希望能获得师兄师姐的帮助~~~
谢谢~~~

我的问题是:在下面这个程序里面,要如何增写代码才能以重载的形式获取double类型数组的最大值呢?



我写的代码如下:


//需求3:同时获取最大值和最小值
class ArrayDemo3test3
{        
        public static void main(String[] args)
        {
                int[] arr ={5,1,6,4,2,8,9};

                int max = getMax_2(arr);
                System.out.println("max="+max);

                int min = getMin(arr);
                System.out.println("min="+min);
        }
        
        public static int getMax_2(int[] arr)//1定义一个获取最大值的功能
        {
                int max = 0;
                for(int x =1;x<arr.length;x++)
                {
                        if (arr[x]>arr[max])
                                max = x;//
                }
                return arr[max];
        }


        public static int getMin(int[] arr) //2定义一个获取最小值的功能
        {
                int min = 0;
                for(int x=1; x<arr.length; x++)
                {
                        if(arr[x]<arr[min])
                                min = x;
                }
                return arr[min];
        }
}

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

9 个回复

倒序浏览
添加代码如下
但上面必须要有double类型的数组
  1. public static double getMax(double[] arr)
  2. {
  3.                int max = 0;
  4.                for(int x=1;x<arr.length;x++)
  5.               {
  6.                            if (arr[x]>max)
  7.                            max = x;
  8.               }
  9.               return arr[max];
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报

如果楼主已经解惑,请将帖子改为提问结束
回复 使用道具 举报
我认为一楼的方法体是正确的,但楼主问的是重载,重载的话则方法名应该是一样的,所以我认为代码应该这样写:
public static double getMax_2(double[] arr)
        {
                 int max = 0;
                 for(int x =1;x<arr.length;x++)
                 {
                         if (arr[x]>arr[max])
                                 max = x;
                 }
                 return arr[max];
         }
还有楼主你写的getMax_2(int[] arr)方法中的
if (arr[x]>max)
应该改为
if (arr[x]>arr[max])
或许是楼主大意了吧
回复 使用道具 举报
重载的关键在于参数列表,参数个数是否相同,参数类型是否相同,不相同则可以重载,与返回值类型无关,需要注意的是返回值类型不同,参数列表相同时,这两个方法是不允许存在同一个类中,这会导致传入参数时虚拟机不知道该调用哪一个,编译失败。我现在也在自学,希望能帮到你
回复 使用道具 举报
周志龙 发表于 2013-10-19 18:25
如果楼主已经解惑,请将帖子改为提问结束

好的~~
回复 使用道具 举报
@克俊 中级黑马 2013-10-19 22:27:48
7#
周志龙 发表于 2013-10-19 18:25
如果楼主已经解惑,请将帖子改为提问结束

请问一下,要怎么改呢?
回复 使用道具 举报
在编辑里选择为提问结束
回复 使用道具 举报
@克俊 中级黑马 2013-10-19 22:41:14
9#
周志龙 发表于 2013-10-19 22:31
在编辑里选择为提问结束

好的,已经知道了,谢谢~~
回复 使用道具 举报
李文帅 发表于 2013-10-19 19:02
我认为一楼的方法体是正确的,但楼主问的是重载,重载的话则方法名应该是一样的,所以我认为代码应该这样写 ...

谢谢~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马