关闭

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

标签: java多参数返回多参数传递
605人阅读 评论(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
查看评论

Java 中如何实现(类似于C#中的OUT)的输出类型参数

转自: http://www.crifan.com/how_to_implement_android_java_output_parameter/ 【问题】 Android中,即Java中,如何调用函数,传递一个OUT类型的参数,然后可以保存函数返回时的值的。 【解决过程...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2015-11-22 15:46
  • 7283

JAVA的可变参数,参数中有三个点

许多Java新人在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊? [java] view plaincopyprint? public class TestVarArgus { ...
  • gaojinshan
  • gaojinshan
  • 2014-06-19 14:25
  • 8463

java 可变参数方法不支持多个可变参数以及多种类型的替代方法

记录了 java 可变参数方法不支持多个可变参数以及多种类型的替代方法。
  • chenjhit
  • chenjhit
  • 2017-05-17 13:22
  • 1980

在一个java方法中如何返回两个参数的值?

1.return数组或集合。如果只返回2个参数或已确定个数,则返回数组(同一类型使用类型数组,不同类型使用Object[])。参数个数未知时,使用集合。 2.组成一个字符串,使用分隔符分隔。接受后截取或分割。 注:分隔符的话,建议使用诸如逗号(,)之类不常使用的符号,&在java里是运算符。...
  • stubbornying
  • stubbornying
  • 2016-05-24 09:27
  • 2943

Java不定参数

先看两个简单的例子,来感受一下Java的不定长度参数  第一个例子:  Java代码   public class VariArgs {       ...
  • djun100
  • djun100
  • 2013-08-21 10:00
  • 23824

java中多个参数传递

public class arg { public static void main(String[] args){ fun(1); System.out.print("\n"); fun(1,2,3); System.out.print("\n&qu...
  • u012744024
  • u012744024
  • 2014-01-22 14:58
  • 2892

java方面中,参数后面跟三个点(...)的含义

private void removeTempFiles(String... fileNames) { for (String fileName : fileNames) { try { new File(fileName).delete(); } catch (Exception e) { } }...
  • guoquanyou
  • guoquanyou
  • 2013-02-05 11:37
  • 24228

Java方法的可变参数个数

原文:Java方法的可变参数类型许多Java新人在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊?[java] view plaincopyprint?public class TestVarArgus { &...
  • testcs_dn
  • testcs_dn
  • 2014-08-29 10:00
  • 41968

java 方法参数过多解决方法

http://www.importnew.com/8926.html
  • lizhuohuang1
  • lizhuohuang1
  • 2017-01-06 16:37
  • 1065

java中一个方法可以有多少个参数

java中一个方法可以有多少个参数 疯子又勇9 | 浏览 289 次 |举报 我有更好的答案 2017-09-29 最佳答案 java的方法可以动态传入参数,比如methodA(String... values),它...
  • evilcry2012
  • evilcry2012
  • 2017-12-21 12:39
  • 137
    个人资料
    • 访问:88361次
    • 积分:1560
    • 等级:
    • 排名:千里之外
    • 原创:68篇
    • 转载:0篇
    • 译文:0篇
    • 评论:48条
    最新评论
    友情链接