选择要在方法中调用的参数量?

时间:2016-04-14 04:32:26

标签: java arraylist methods parameters

当我试图创建一个运行计算的方法并返回我正在处理的小项目的二进制值时;我试图让方法参数包括要添加到一起的所有值,但是这样做的时候我意识到我不知道如何在不使用某种数组的情况下这样做。

是否可以让以下方法addBinary中的参数根据我想要添加的数量而改变?

public int addBinary() // I want these parameters to have all integers I wish to add
{
    // Calculations go here //
}

基本上,如果我希望运行程序并在第一次添加5个值,在下一个时添加25个值;如何在不创建数组的情况下将所有值都放入方法中?

3 个答案:

答案 0 :(得分:1)

我不知道为什么你不想在这里使用数组。只需传递一个array作为参数,然后进行您想要的计算。

public int addBinary(int a[]) 
{
     for(int i=0;i<a.length;i++)
            sum+=a[i];
     return sum;
}

或使用arraylist

public int addBinary(ArrayList m) 
{
    int sum = 0;
    for(i = 1; i < m.size(); i++)
          sum += m.get(i);
    return sum;
}

代码Ideone

的链接

答案 1 :(得分:1)

您可以在方法定义中使用可变数量的参数(使用省略号,...),如下所示:

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static int add(int ...arr)
    {
        int sum=0;
        for(int i=0;i<arr.length;i++)
            sum+=arr[i];
        return sum;
    }
    public static void main (String[] args) throws java.lang.Exception
    {
        System.out.println(add(1, 2, 3, 4));
        System.out.println(add(1, 2, 3));
    }
}

输出:

10 
6

https://ideone.com/PHL8Lb

答案 2 :(得分:0)

您可以使用varargs

void testapp(String ...studentsName){       
     for (int i = 0; i < studentsName.length; i++) {
        System.out.println(studentsName[i]);
    }
 }