我正在尝试获取对象的平均分数,但想不出一个好方法。
我有 10 个对象,它们都有自己的关联分数。
我创建了 setter 和 getter 类,它将获得平均值,但我遇到的问题是我会创建类似的东西,这样即使我确实将对象的分数放入此方法中,持有者也会回到 0。
public double getAverage() {
return average;
}
public void setAverage(double studentScore) {
double holder = 0;
average = holder + studentScore;
holder = average;
this.average = studentScore;
}
我还考虑过为每个分数创建 setter 和 getter 方法,但这会占用大量空间,我认为必须有更好的方法来做到这一点。
这是我在 main 方法中使用的代码片段
public static void main(String[] args) {
final String STUDENT_INFO = "HW1_Students.txt";
List<GradeInfo> list = new ArrayList<GradeInfo>();
Scanner inputFile = null;
GradeInfo person1 = new GradeInfo();
GradeInfo person2 = new GradeInfo();
GradeInfo person3 = new GradeInfo();
GradeInfo person4 = new GradeInfo();
GradeInfo person5 = new GradeInfo();
GradeInfo person6 = new GradeInfo();
GradeInfo person7 = new GradeInfo();
GradeInfo person8 = new GradeInfo();
GradeInfo person9 = new GradeInfo();
GradeInfo person10 = new GradeInfo();
list.add(person1);
list.add(person2);
list.add(person3);
list.add(person4);
list.add(person5);
list.add(person6);
list.add(person7);
list.add(person8);
list.add(person9);
list.add(person10);
try {
inputFile = new Scanner(new File(STUDENT_INFO));
}
catch (FileNotFoundException ex) {
System.out.println("\n *** Exception occured while opening "
+ ex.getMessage() + " ***");
System.exit(-1);
}
readData(inputFile, STUDENT_INFO, person1, person2, person3, person4,
person5, person6, person7, person8, person9, person10);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
如有任何建议,我们将不胜感激,谢谢。
最佳答案
public void setAverage(ArrayList<GradeInfo> grades) {
double average = 0;
for(int i = 0; i < grades.size(); i++){
average += grades.get(i);
}
average = average / grades.size();
this.average = average;
}
我希望这就是您想要做的......这个方法将获取您的Arraylist,并在您的有线“setter 和 getter 类”中设置正确的平均分数。
关于java - 从对象数量中获取平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32595344/