Java 为什么可以';我们不能通过ArrayList<;整数>;到具有(整数…)参数的方法?
我试图做这个Java如何编程任务:“编写一个计算产品的应用程序 使用可变长度参数列表传递给方法“product”的一系列整数的 我得到一条错误消息,类型VarLenArgumentList中的方法乘积(Integer…)不适用于 参数(ArrayList)。如果Java将变长参数列表视为数组,为什么会这样?ArrayList不是数组吗 完成任务的另一种方式是什么Java 为什么可以';我们不能通过ArrayList<;整数>;到具有(整数…)参数的方法?,java,arraylist,variadic-functions,Java,Arraylist,Variadic Functions,我试图做这个Java如何编程任务:“编写一个计算产品的应用程序 使用可变长度参数列表传递给方法“product”的一系列整数的 我得到一条错误消息,类型VarLenArgumentList中的方法乘积(Integer…)不适用于 参数(ArrayList)。如果Java将变长参数列表视为数组,为什么会这样?ArrayList不是数组吗 完成任务的另一种方式是什么 Scanner keyboard = new Scanner(System.in); int flag = 0; ArrayList&
Scanner keyboard = new Scanner(System.in);
int flag = 0;
ArrayList<Integer> intArray = new ArrayList<>();
do
{
System.out.print("Enter a positive integer or '-1' to quit:" );
int input = keyboard.nextInt();
intArray.add(input);
} while (flag != -1);
product(intArray);
}
public static int product (Integer... numbers)
{
int total = 0;
for (Integer element : numbers)
total *= element;
return total;
}
扫描仪键盘=新扫描仪(System.in);
int标志=0;
ArrayList intArray=新的ArrayList();
做
{
System.out.print(“输入正整数或“-1”退出:”;
int input=keyboard.nextInt();
intArray.add(输入);
}while(flag!=-1);
产品(intArray);
}
公共静态整数乘积(整数…数字)
{
int-total=0;
for(整数元素:数字)
总数*=元素;
返回总数;
}
Integer…
参数接受任意数量的Integer
对象或数组Integer[]
。由于ArrayList
不是整数[]
,因此不接受该参数
ArrayList
不是数组,它是一个集合
,而java中的数组是另一个对象
不过,您可以使用方法轻松地将
ArrayList
转换为数组。但请注意,它将是一个不同的对象,这主要在您只想从集合中读取而不是写入时非常有用。Integer…
参数接受任意数量的Integer
对象或数组Integer[]
。由于ArrayList
不是整数[]
,因此不接受它
ArrayList
不是数组,它是一个集合
,而java中的数组是另一个对象
不过,您可以使用方法轻松地将ArrayList
转换为数组。但请注意,它将是一个不同的对象,这主要在您只想从集合中读取而不是写入时非常有用
完成任务的另一种方式是什么
Scanner keyboard = new Scanner(System.in);
int flag = 0;
ArrayList<Integer> intArray = new ArrayList<>();
do
{
System.out.print("Enter a positive integer or '-1' to quit:" );
int input = keyboard.nextInt();
intArray.add(input);
} while (flag != -1);
product(intArray);
}
public static int product (Integer... numbers)
{
int total = 0;
for (Integer element : numbers)
total *= element;
return total;
}
您可以将整数列表传递给该方法
public static int product (List<Integer> integerList)
{
Integer total = 0;
for (Integer element : integerList)
total *= element;
return total;
}
公共静态整数乘积(列表整数列表)
{
整数合计=0;
for(整型元素:整型列表)
总数*=元素;
返回总数;
}
完成任务的另一种方式是什么
Scanner keyboard = new Scanner(System.in);
int flag = 0;
ArrayList<Integer> intArray = new ArrayList<>();
do
{
System.out.print("Enter a positive integer or '-1' to quit:" );
int input = keyboard.nextInt();
intArray.add(input);
} while (flag != -1);
product(intArray);
}
public static int product (Integer... numbers)
{
int total = 0;
for (Integer element : numbers)
total *= element;
return total;
}
您可以将整数列表传递给该方法
public static int product (List<Integer> integerList)
{
Integer total = 0;
for (Integer element : integerList)
total *= element;
return total;
}
公共静态整数乘积(列表整数列表)
{
整数合计=0;
for(整型元素:整型列表)
总数*=元素;
返回总数;
}
不,这不是一个重复,至少对于链接的问题不是。这里的问题主要是不是一个数组列表一个数组?
,这不是链接线程中的问题。在这个例子中,你发布了}while(flag=-1);
应该是}while(input!=-1)
要匹配您的打印条件,还需要System.out.printf
需要一个字符串格式
参数,我在您的示例中没有看到,所以我猜您的意思是System.out.print
或System.out.println
。当然,您是对的。我已经编辑了我的帖子并对其进行了改进。不,至少这不是重复不是针对链接的问题。这里的问题主要是不是数组列出数组?
,这不是链接线程中的问题。在示例中,您发布了}while(flag=-1);
应该是}while(input!=-1)
要匹配您的打印条件,还需要System.out.printf
需要一个字符串格式
参数,我在您的示例中没有看到这个参数,所以我猜您的意思是System.out.print
或System.out.println
。当然,您是对的。我编辑了我的帖子并对其进行了改进。但这并不能完成这篇文章要求:“使用可变长度参数列表”。但这并不能满足要求:“使用可变长度参数列表”。