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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刚才看视频教学,看到求数组中的最大值和最小值,老师用了2个函数:getMax和getMin。我想可不可以用一个函数同时返回最大值最小值?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

17 个回复

正序浏览
Akm 黑马帝 2015-1-5 14:28:13
18#
1. 返回数组 2. 返回对象 3.返回指定格式string 4.其他...
回复 使用道具 举报
同时返回最大值和最小值,这样拿到这两个值也不方便。不如直接调用getMax,getMin直接方便
回复 使用道具 举报
我用冒泡排序
/**
         * 冒泡排序方法
         * 数组元素大小按升序排列
         * @param 传入一个整型数组
         */
        public static void sort(int[] a) {
                //中间变量temp
                int i,j,temp;
            for(j=0;j<a.length-1;j++)
                for(i=0;i<a.length-1-j;i++)
                {
                    if(a[i]>a[i+1])//数组元素大小按升序排列
                    {
                        temp=a[i];
                        a[i]=a[i+1];
                        a[i+1]=temp;
                    }
                }
            
        }

System.out.println("最小的数是:" + number[0]);
                System.out.println("最大的数是" + number[number.length-1]);
回复 使用道具 举报
可以先进行升序的排序 第一个是最小 最后一个是最大的
回复 使用道具 举报
一个函数就实现对应的一个功能,返回两个值的话,计算机会知道你要哪个吗?
回复 使用道具 举报
noiary 发表于 2015-1-4 23:28
返回一个数组  int[] arr = {min, max};

好想法啊!我试了下可以。
public static int[] getmaxmin(int[]a)
        {
                int max=a[0],min=a[0];
               
                for(int i=0;i<a.length;i++)
                {
                        if(a>max)max=a;
                        if(a<min)min=a;
                }
               int[] getarr={max,min};
                return getarr;
        }
主函数里,int max=getmaxmin(arr)[o];
               int min=getmaxmin(arr)[1];
回复 使用道具 举报
其中一位楼上的说的很正确,你可以把数组先排序,然后取0和length-1就是min和max了。
回复 使用道具 举报
返回一个数组  int[] arr = {min, max};
回复 使用道具 举报
这个是不行的,这就是java的语法规则,如果你非得想一下返回两个值得话,可以将最大和最小值作为一个对象的属性,然后返回这个对象;然后你就可以通过这个对象来访问最大和最小值,这种实际上也是只有一个返回值,只不过这个返回值是一个对象,而这个对象里面是包含你要的最大值和最小值的
回复 使用道具 举报
路过 打个酱油
回复 使用道具 举报
将最大、最小值作为引用参数传给被调函数,被调函数找到最大、最小值后,赋值给引用参数即可。
回复 使用道具 举报
哥们,不行啊 。只能返回一个值,不可能返回2个的。如果实在是要输出一个函数输出大小数的话,你可以看下我这个,代码很简陋,不要见笑哈,我是真的用心的哦。

class CollenctionDome
{
        public static void main(String[] args)
        {
           Dx r=new Dx();
          int temp=r.getreturn_two();
           System.out.println(temp);
           System.out.println();

        }
       
       
}
class Dx
{
   public int getreturn_two()
        {
           int[] arr={4,3,5,7,9};
           int pos=0;
       int pos_max=0;
           for(int s=1;s<arr.length;s++)
                {
                if(arr[pos]>arr[s])
                        {
                               arr[pos]=arr[s];
                        }
               
           }
                System.out.println("最小的是"+arr[pos]);
           for(int w=1;w<arr.length;w++)
                {
               if(arr[pos_max]<arr[w])
                        {
                    arr[pos_max]=arr[w];
                   }
                  
           }
                 System.out.println("最大的数是:"+arr[pos_max]);
               
      return   1;
   }

}
回复 使用道具 举报
写个类,建立一个对象,返回对象就行了,可是,没必要啊

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
还可以封装一个返回值类,包含最大值最小值2个成员变量。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报 1 0
学习了。。
回复 使用道具 举报
楼上正解,支持一下
回复 使用道具 举报
将数组排序后获取0角标位置的值和length-1角标的值就可以同时获取到最大值和最小值了。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

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