老师能对对各班语文成绩按平均分进行由大到小排序功能给个思路?
个人的思路比较混乱
我自己建了一个类
public class ChineseScore implements Comparator<Banji> {
@Override
public int compare(Banji arg0, Banji arg1) {
//按成绩升序排序
int f1=(int)(arg0.getAverageChineseScore());
int f2=(int)(arg1.getAverageChineseScore());
return f1-f2;
}
}
2.写完ChineseScore 类我发现Banji类中少了一个List去存放每个班对应的语文平均成绩,
缺少的List中应该是插入某个班级作为一个对象,
而这个要插入班级的对象包含某个班和某个班对应的语文平均成绩,
但是我Banji类中的构造方法是
// 带参构造方法
public Banji(String classId, String className) {
this.setClassId(classId);
this.setClassName(className);
stuList = new ArrayList<Student>();
}
我怎么在Banji类中去创建新的对象,而且这个对象只有班级名称和语文平均成绩属性呢?然后把这个对象放入存平均语文成绩的List中。
//自己思路不清晰,说话都说不清了。老师如果看不懂我说什么了,直接给我个思路让我琢磨琢磨也行,不懂接着再问
正在回答
第一步:班级的类里面创建一个getAvgChinese()方法,只要能得出班级学生语文成绩平均分就行,不需要另外定义属性。
public int getAvgChinese(){} // 获取班级语文平均
第二步:创建班级按语文成绩排序规则的类,这个你已经实现了。
public class ChineseScore implements Comparator<Banji>{} // 按照班级语文平均分排序
第三步:在学校的类下,创建一个geiBanJiList(){}的方法,得到所有班级对象的列表(除"主学生列表"外)。
public List<BanJi> geiBanJiList(){}
第四步:排序
List<BanJi> banJiList = school.geiBanJiList(); banJiList.sort(new SortChinese());
3)School类
属性:存放班级的集合(schoolMap) ,类型为Map
上面是题目要求School类下的属性,Map存放的是各个班级对象。
遍历这个Map的值(也就是班级对象),判断每个班级对象的名称是不是"主学生列表",
public List<BanJi> getBanJiList() { List<BanJi> banJiList = new ArrayList<>(); for (BanJi banJi : schoolMap.values()) { //这里判断班级名,若不是"主学生列表",则加入到banJiList } return banJiList; }
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星