[英]problems with ArrayList in if-statement and for-loop
我有關於for循環和ArrayList的問題。 我有一個帶字符串和整數的HashMap,其中String表示一個類,Integer表示成績。 他們在ArrayList中有一組學生。 所以我要做的是找到ArrayList中學生成績的平均值。 這是該類的代碼:
import java.util.ArrayList;
public class BachelorStudenter {
private ArrayList<BachelorStudent> bs;
public Bachelorstudenter() {
bs = new ArrayList<>();
}
public int bsGjennomsnitt() {
int sum = 0;
int gjennomsnitt = 0;
if(!bs.isEmpty()){
for(BachelorStudent b : bs.values){
sum += b.finnGjennomsnitt();
}
return gjennomsnitt;
}else {
return 6;
}
}
}
我知道if語句中的for循環中的bs.values是錯誤的,但我已經嘗試使用谷歌搜索我應該使用的內容,並且.contains或.size都不起作用。
哦,我還有另一個名為BachelorStudent的課程,在那里我可以創建一個BachelorStudent的對象,它將放在Bachelorstudenter的ArrayList中。
有人知道我需要放在那里嗎?
你做的是遞歸地以異常結束....
你必須做::
for(Bachelorstudent b : bs){
sum += b.getSomething();
}
並將getSomething定義為類Bachelorstudent中字段的getter
如果你想要的是返回所有學生的平均成績的平均值,你可以做以下事情:
import java.util.ArrayList;
public class Bachelorstudenter {
private ArrayList<Bachelorstudent> bs;
public Bachelorstudenter() {
bs = new ArrayList<>();
}
public double bsGjennomsnitt() {
double sum = 0.0;
double gjennomsnitt = 6.0;
if(!bs.isEmpty()){
for(Bachelorstudent b : bs){
sum += b.finnGjennomsnitt();
}
gjennomsnitt = sum/bs.size()
}
return gjennomsnitt;
}
}
請注意,我將return value
, sum
和gjennomsnitt
為double
因為平均值也可能是非整數值。 答案還假設b.finnGjennomsnitt()
返回學生參加的所有課程的平均值並返回此值。 如果你只想返回一個班級所有學生的平均分,答案就不會給你這個。 如果這是問題的一部分,請在您的問題中指明並包括finnGjennomsnitt()
的代碼。 如果沒有學生,答案中的方法將返回6.0作為平均值,如問題中的代碼。 也許這應該被重新考慮,因為它使一個特殊的學生群體的直接6.0等級的情況等於沒有學生的情況。 也許你可以在沒有學生時返回-1?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.