4 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
您需要遍歷List以訪問每個(gè)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
}
}
您還應(yīng)該使用 avoid作為返回類型,而不是int因?yàn)闆]有理由返回sum. 它已經(jīng)可以從類本身訪問,因此 return 是多余的。
下面是一個(gè)關(guān)于如何使用這個(gè)方法的例子,假設(shè)一個(gè)標(biāo)準(zhǔn)的 getter 方法:
SumAverage sa = new SumAverage();
sa.sumOfElements(yourList);
int sum = sa.get(sum); //Local variable now contains your class variable

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
因?yàn)閘is是 anArrayList并且此類型不支持+,所以您需要訪問 ArrayList 的位置list.get(x)
但你可能想要這個(gè)
public int sumOfElements(ArrayList<Integer> lis) {
int total = 0
for(int i = 0; i < lis.size(); i++){
total += lis.get(i);
}
return total;
}

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
你的問題是這段代碼。
public int sumOfElements(ArrayList<Integer> lis)
{
sum=sum+lis;
return sum;
}
編譯器不知道如何將 int 添加到 arrayList。
您需要做的是遍歷列表中的每個(gè)項(xiàng)目,并將總數(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)在不需要擔(dān)心這個(gè),先掌握 Java 的基礎(chǔ)知識)
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);
}
您可以將打印語句拆分為如下內(nèi)容
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貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
我假設(shè)您期望運(yùn)算符+
將自動應(yīng)用于lis
and中的每個(gè)元素li
。sum=sum+lis;
這不是or的情況"Given elements are "+li
。您需要以某種方式迭代ArrayList
以完成您想要實(shí)現(xiàn)的目標(biāo)。
添加回答
舉報(bào)