关闭

java返回多参数方法与方法的多参数传递

标签: java多参数返回多参数传递
217人阅读 评论(0) 收藏 举报
分类:

1 java返回多参数方法

      在编写程序时经常遇到从一个方法中返回多个有用信息的情况。例如查找一个数组中最大值与最小值,一般的做法是通过一个for循环,两个if判断找出最值。但是在找到有用信息后需要通过函数返回的方式获取有用信息。当然我们可以通过全局变量解决这个问题,然而在C编程里面我们最好减少全局变量的使用,在这里介绍一种用java返回对象的同时返回多个字段信息。

public void getMaxMin(int[] array)
{
    int minVal=0;
    int maxVal=0;
    for(int i=0;i<array.length;i++)
    {
        if(array[i]<minVal)
        {
            minVal=array[i];
        }
        if(array[i]>maxVal)
        {
            maxVal=array[i];
        }
    }
}

      以上是常见的获取数组最值的方式。但是却不能一次返回最大值最小值。但是采用返回对象的方式效果却大不同。看下面代码段:

class MaxMinGet
{
    private int min=0;
    public int getMin() {
        return min;
    }
    public void setMin(int min) {
        this.min = min;
    }
    public int getMax() {
        return max;
    }
    public void setMax(int max) {
        this.max = max;
    }
    private int max=0;
    public MaxMinGet(int min, int max)
    {
        this.min = min;
        this.max = max;
    }
    public static MaxMinGet paraGet(int[] arr)
    {
        int minVal=0;
        int maxVal=0;
        for(int i=0;i<arr.length;i++)
        {
            if(arr[i]<minVal) minVal=arr[i];
            if(arr[i]>maxVal) maxVal=arr[i];

        }
        return new MaxMinGet(minVal, maxVal);
    }


}

       将最值作为对象构造方法的参数创建对象,之后可以通过获取器就可以分别获得最大值与最小值。下面是测试代码:

int[] arr={1,2,3,4,5,6,7,8,9};
        System.out.println(MaxMinGet.paraGet(arr).getMax());
        System.out.println(MaxMinGet.paraGet(arr).getMin());

2 方法多参数传递

      在标准输入输出库中有输出sprintf函数,参数是可变。可以根据实际需要传递不同参数。当然在java里面多态可以解决这个功能。这里介绍一种多参数传递的方法。

      实例:若要从用户提供的序列数据中提取最大值。前提是不知道用户提供的数据量有多大,且不用集合进行处理。

class ChangeParameter
{
    public double max(double...values)
    {
        double largest=Double.MIN_VALUE;
        for(double v:values)
        {
            if(v>largest)
            {
                largest=v;
            }
        }
        return largest;
    }
}

      public double max(double…values)这个方法可以实现对不定项长度double数据进行处理。下面是测试结果:

ChangeParameter c=new ChangeParameter();
double max=c.max(1.2,3.4,5.6,8.7);
System.out.println("这些数字中最大的是"+max);

      输出是8.7。总之在方法中使用不定参数时能够比较灵活处理由数据的不确定性带来的问题,也比较实用。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:51860次
    • 积分:1236
    • 等级:
    • 排名:千里之外
    • 原创:67篇
    • 转载:0篇
    • 译文:0篇
    • 评论:40条
    最新评论
    友情链接