4 回答
TA贡献1784条经验 获得超7个赞
您需要遍历List以访问每个Integer并将其添加到总和中:
public void sumOfElements(ArrayList<Integer> lis)
{
for (Integer num : lis) {
sum = sum + num; //Access each element in the list one at a time and add it to the sum
}
}
您还应该使用 avoid作为返回类型,而不是int因为没有理由返回sum. 它已经可以从类本身访问,因此 return 是多余的。
下面是一个关于如何使用这个方法的例子,假设一个标准的 getter 方法:
SumAverage sa = new SumAverage();
sa.sumOfElements(yourList);
int sum = sa.get(sum); //Local variable now contains your class variable
TA贡献1796条经验 获得超10个赞
因为lis是 anArrayList并且此类型不支持+,所以您需要访问 ArrayList 的位置list.get(x)
但你可能想要这个
public int sumOfElements(ArrayList<Integer> lis) {
int total = 0
for(int i = 0; i < lis.size(); i++){
total += lis.get(i);
}
return total;
}
TA贡献1796条经验 获得超7个赞
你的问题是这段代码。
public int sumOfElements(ArrayList<Integer> lis)
{
sum=sum+lis;
return sum;
}
编译器不知道如何将 int 添加到 arrayList。
您需要做的是遍历列表中的每个项目,并将总数制成表格。
public int sumOfElements(ArrayList<Integer> lis)
{
sum=0; //reset the total
for(int i: lis){ //loop through each element in lis
sum+=i;
}
return sum;
}
为了完整起见,如果您使用流,那么它将是这样的:-(现在不需要担心这个,先掌握 Java 的基础知识)
public int sumOfElements(ArrayList<Integer> lis)
{
//it takes each item in lis, and sum them up.
sum = IntStream.of(lis).sum();
return sum;
}
也正如 JoshhuaS 所提到的,您的打印文本可能不会返回您所期望的
public void getInput(ArrayList li )
{
System.out.println("Given elements are "+li);
}
您可以将打印语句拆分为如下内容
public void getInput(ArrayList li )
{
System.out.print ("Given elements are " ); //note it's print instead of println
System.out.println(li); //this will print for example [1,2,3,4]
}
TA贡献1871条经验 获得超8个赞
我假设您期望运算符+
将自动应用于lis
and中的每个元素li
。sum=sum+lis;
这不是or的情况"Given elements are "+li
。您需要以某种方式迭代ArrayList
以完成您想要实现的目标。
添加回答
举报