我是Java初学,Iterator运用,算平均分,纠错!

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:58:38
创建一个学生类,每个学生有一个姓名属性、班级名称属性(String)、课程名称属性(String)和考试成绩属性(int),某次考试结束后,每个学生都获得了一个考试成绩。
请列出所有学生的信息;
请打印class1班的总分和平均分;

问:我total打出来都是0,是哪步错了?
类:
public class Stu {
private String name;
private String classname;
private String subject;
private int score;

public Stu()
{
name=null;
classname=null;
subject=null;
score=0;
}
public Stu(String sname,String sclassname,String ssubject,int iscore)
{
name=sname;
classname=sclassname;
subject=ssubject;
score=iscore;
}
public void print()
{
System.out.print("name:"+name+",");
System.out.print("classname:"+classname+",");
System.out.print("subject:"+subject+",");
System.out.println("score"+score);
}
public String getclassname()
{
return classname;
}
public

Iterator<Stu> it2=lt2.iterator();
Stu s=it2.next();
lt2.add(s);
这个地方错了,你的it2里面根本什么也没有,你next()得不到任何东东,出来不是0才怪.

while(it.hasNext())
{
Stu stu=it.next();
if(stu.getclassname().equals("class1"))
{ it2.add(stu);
}
}

while(it2.hasnext()){
Stu s=it2.next();
total=total+s.getscore();
stu.print();
}
这样就OK啦.

搞那么麻烦做什么
直接for(Stu stu:lt){
stu就是每一个学生的实体
}

D:\Program>javac Student.java

D:\Program>java Student
name:张三,classname:class1,subject:Java,score85
name:周乐儿,classname:class1,subject:c#,score79
164

import java.util.ArrayList;
import java.util.*;

class Stu
{
public String name;
public String classname;
public String subject;
public int score;

public Stu(String sname,String sclassname,String ssubject,int iscore)
{
name=