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。
您需要做的是遍歷列表中的每個項目,并將總數(shù)制成表格。
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;
}
為了完整起見,如果您使用流,那么它將是這樣的:-(現(xiàn)在不需要擔心這個,先掌握 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
以完成您想要實現(xiàn)的目標。
添加回答
舉報