老师帮忙看看哪出问题了

老师帮忙看看哪出问题了

/**
  *      对各班语文成绩按平均分进行由大到小排序
  */
 public void sortChineseByAverage() {
  List<Float> a=new ArrayList<>();
  Map<Float,BnJi> pj=new HashMap<>();
  BnJi banji=null;
  List<Student> stu=null;
  Set<String> nameSet=this.getSchoolMap().keySet();
  Set<Map.Entry<String,BnJi>> sc=this.getSchoolMap().entrySet();
  if(nameSet==null)
   {
    System.out.println("还未添加班级");
   }else {
  for(Map.Entry<String,BnJi> jj:sc) {
   float sum=0;
   banji=jj.getValue();
   stu=banji.getStuList();
   if(stu!=null) {
   for(Student ch:stu) {
     sum+=ch.getChinese();
   }
   pj.put((sum/stu.size()),banji);
   }else {
    System.out.println("还未向"+banji.getClassName()+"中添加学生");
    
   }
   
  }
  Set<Map.Entry<Float,BnJi>> sc1=pj.entrySet();
  for(Map.Entry<Float,BnJi> xx:sc1) {
   a.add(xx.getKey());
  }
  //排序
   Collections.sort(a,new Comparator<Float>() {

    @Override
    public int compare(Float o1, Float o2) {
     // TODO Auto-generated method stub
     return (int) (o2-o1);
    }
       
      });
   for(Float aa:a) {
    System.out.println(pj.get(aa).getClassName()+":"+aa);
   }
  }
  
 }

请输入对应数字进行学校列表管理
4
对各班语文成绩按平均分进行由大到小排序
bb:NaN

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,是的,不输出else语句的原因是因为同学这里通过getStuList()方法获取了stu的集合,同学在班级类中应该是对stuList进行类实例化,具体如下:

http://img1.sycdn.imooc.com//climg/5e145b2f09f5a19603870063.jpg

所以不能通过是否为null进行判断这个stu集合中是否有学生,应该通过size()方法,判断集合中是否有学生,具体如下:

http://img1.sycdn.imooc.com//climg/5e145bd80946e4fb05430188.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕酷酷 2020-01-07 17:51:20

同学你好,老师这边测试同学的sortChineseByAverage()方法编写的是正确的,具体如下:

http://img1.sycdn.imooc.com//climg/5e1452fb09177c9e03500157.jpg

这里同学输出为NaN,有以下几种可能,同学可以进行排查:

1、建议同学检查在运行时,是否将学生放在班级中了。

2、建议同学检查一下将学生放在班级中的的代码是否编写正确。

如果没有解决,同学可以将作业提交,我们的批复老师,会根据同学的代码进行修改反馈的。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕沐0220913 #1
    老师就是班级没有学生时他会显示NAN二不是打印输出我想要的话就是这个为什么不输出else { System.out.println("还未向"+banji.getClassName()+"中添加学生"); } if(nameSet==null) { System.out.println("还未添加班级"); }else {
    2020-01-07 17:55:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师