Java 如何调用和声明参数数量可变的方法?

Java 如何调用和声明参数数量可变的方法?,java,arrays,variables,methods,Java,Arrays,Variables,Methods,我试图用(int=amountCoefficients)数量的参数调用一个函数,并且声明一个同样数量的参数的函数 更难的是,例如amountCoefficients=5,这意味着有一个由5个块组成的数组,每个块都有一个值(double)。因此,第一个参数必须等于该数组第一个块的值,第二个参数必须等于该数组第二个块的值,依此类推 之前我们不知道需要多少参数,因为这取决于用户填写的双倍数,所以amountCoefficients可以等于2、4或任何其他正整数 我对Java非常陌生,我真的不知道该怎么

我试图用(int=amountCoefficients)数量的参数调用一个函数,并且声明一个同样数量的参数的函数

更难的是,例如amountCoefficients=5,这意味着有一个由5个块组成的数组,每个块都有一个值(double)。因此,第一个参数必须等于该数组第一个块的值,第二个参数必须等于该数组第二个块的值,依此类推

之前我们不知道需要多少参数,因为这取决于用户填写的双倍数,所以amountCoefficients可以等于2、4或任何其他正整数

我对Java非常陌生,我真的不知道该怎么做。正如你们在下面看到的,我试图用for循环做一些事情,但我认为这不起作用

public class Interpol {

  public static void main(String []args) {

    Scanner scanner = new Scanner(System.in);

        //acquire user input (polynomial coefficients and interval values x1 and x2)
        ArrayList<Double> polynomialCoefficients = new ArrayList<Double>();
        int amountCoefficients = 0;
        while (scanner.hasNextDouble()) {
            polynomialCoefficients.add(scanner.nextDouble());
            amountCoefficients++;
        }
        String in = scanner.next();
        double x1 = scanner.nextDouble();
        double x2 = scanner.nextDouble();

        //call method f to determine the polynomial function
        int i = 0;
        for (i = 0; i < amountCoefficients; i++) {
        f
        }

        //call method findaroot to determine the root


        //print result

  }

}

public static double f(double x) {
//function of which a root is to be found
}
公共级国际刑警组织{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
//获取用户输入(多项式系数和区间值x1和x2)
ArrayList多项式效率=新ArrayList();
int数量系数=0;
while(scanner.hasNextDouble()){
polynomialefficients.add(scanner.nextDouble());
数量系数++;
}
字符串in=scanner.next();
double x1=scanner.nextDouble();
double x2=scanner.nextDouble();
//调用方法f来确定多项式函数
int i=0;
对于(i=0;i<数量系数;i++){
F
}
//调用findaroot方法来确定根
//打印结果
}
}
公共静态双f(双x){
//要找到其根的函数
}

您可以创建一个采用列表或数组的方法。然后该方法可以使用List.size()和array.length来处理每个对象

public static void main(String[] args){
    ArrayList<Double> polynomialCoefficients = new ArrayList<Double>();

    // get data
    ...

    process(polynomialCoefficients);
}

public void process(List<Double> coefficients){
    for(int i = 0; i < coefficients.size(); i ++){
        System.out.println("Element " + i + ": " + coefficients.get(i));
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList多项式效率=新ArrayList();
//获取数据
...
过程(多项式效率);
}
公共无效流程(列出系数){
对于(int i=0;i
您可以使用接收任意数量的参数,尽管这些参数将被转换为。这是通过以下代码实现的:

public void printOneEachLine(String... parameters) {
   for (String parameter : parameters) {
      System.out.println(parameter);
   }
}
您可以通过以下方式进行调用:

printOneEachLine("msg1", "msg2");
printOneEachLine("msg3", "msg4", "msg5", "msg6");

谢谢你的解决方案!