老师帮我看一下 成绩排序的问题在哪里?

老师帮我看一下 成绩排序的问题在哪里?

package com.xieyongchang.students;

//import java.io.Serializable;

public class Student{
   private String stu;//学号
   private String name;//姓名
   private float math;//数学成绩
   private float chinese;//语文成绩
   //构造方法
  public Student(String stu, String name) {
   super();
   this.stu = stu;
   this.name = name;
  }
  //getter和setter方法
  public String getStu() {
   return stu;
  }
  public void setStu(String stu) {
   this.stu = stu;
  }
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public float getMath() {
   return math;
  }
  public void setMath(float math) {
   this.math = math;
  }
  public float getChinese() {
   return chinese;
  }
  public void setChinese(float chinese) {
   this.chinese = chinese;
  }
  
  @Override
  public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + Float.floatToIntBits(chinese);
   result = prime * result + Float.floatToIntBits(math);
   result = prime * result + ((name == null) ? 0 : name.hashCode());
   result = prime * result + ((stu == null) ? 0 : stu.hashCode());
   return result;
  }
  @Override
  public boolean equals(Object obj) {
   if(this==obj)
    return true;
   if(this!=obj) {
    Student student=(Student)obj;
    return (student.getStu().equalsIgnoreCase(stu))&&(student.getName().equals(name))
      &&(student.getMath()==math)&&(student.getChinese()==chinese);
   }
   return false;
  }
  @Override
  public String toString() {
   return "学生信息:学号" + stu + ", 姓名:" + name + ", 数学成绩:" + math + ", 语文成绩:" + chinese;
  }
   
}



package com.xieyongchang.students;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Banji {
  private String classID;//班级ID
  private String className;//班级名称
  private List<Student> stuList;//存放学生的集合
  Scanner sc=new Scanner(System.in);
  //构造方法
  public Banji(String classID,String className) {
   this.classID=classID;
   this.className=className;
   stuList=new ArrayList<Student>();
  }
  //getter和setter方法
  public String getClassID() {
   return classID;
  }
  public void setClassID(String classID) {
   this.classID = classID;
  }
  public String getClassName() {
   return className;
  }
  public void setClassName(String className) {
   this.className = className;
  }
  public List<Student> getStuList() {
   return stuList;
  }
  public void setStuList(List<Student> stuList) {
   this.stuList = stuList;
  }
  /**
   * 在学生集合中添加学生信息的方法
   * @param student 学生信息
   */
  public void addStudent(Student student){
   boolean flag=false;
   for(Student stu:stuList) {
    if(stu.equals(student)) {
     //检测有没有重复的学生,重复则flag等于true
     flag=true;break;
    }
   }
   if(flag) {
    System.out.println("班级里面已经录入该学生的信息!");
   }else {
    stuList.add(student);
   }
   System.out.println("录入学生信息成功!");
  }
  /**
   * 通过学号查询学生在班级中是否存在的方法
   * @param stuNum学生学号
   * @return
   */
   public Student searchStudentByNum(String stuNum){
    Student stu=null;
    //学生学号是唯一的
    for(Student stu1:stuList) {
     if(stu1.getStu().equals(stuNum)) {
      stu=stu1;
      break;
     }
    }
    return stu;
   }
   /**
    * 输入班级学生的语文成绩
    * @param stuNum学生学号
    * @param score 学生语文成绩
    */
   public void insertChineseScore(String stuNum,float score){
   Student stu=searchStudentByNum(stuNum);//通过学号查询该学生的信息
   if(stu==null) {
     System.out.println("没有找到学号为"+stuNum+"的信息");
    }else {
   stu.setChinese(score);//把成绩传进去
    }
   System.out.println("该学号"+stuNum+"的学生语文成绩输入成功!");
   }
   /**
    * 输入班级学生的数学成绩
    * @param stuNum 学生学号
    * @param score 学生数学成绩
    */
   public void insertMathScore(String stuNum,float score){
    Student stu=searchStudentByNum(stuNum);//通过学号查询该学生的信息
    if(stu==null) {
     System.out.println("没有找到学号为"+stuNum+"的信息");
    }else {
    stu.setMath(score);
    }
    System.out.println("该学号"+stuNum+"的学生数学成绩输入成功!");
   }
   /**
    * 删除学习信息
    * @param stuNum要删除的学生信息学生学号
    */
   public void deleteStudent(String stuNum){
    Student stu=searchStudentByNum(stuNum);
    if(stu==null) {
     System.out.println("没有找到学号为"+stuNum+"的信息");
    }else {
    stuList.remove(stu);
    }
    System.out.println(stu.getName()+"的信息已被删除");
   }
   /**
    * 显示所有学生的信息
    */
   public void displayAllStudent(){
    System.out.println("所有学生的信息为:");
    for(Student stu:stuList) {
     System.out.println(stu);
    }
   }
}


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


public class School {
   private Map<String,Banji> schoolMap;//存放班级信息的集合
   //无参构造方法
  public School() {
   super();
   schoolMap=new HashMap<String,Banji>();
  }
  //getter和setter方法
  public Map<String, Banji> getSchoolMap() {
   return schoolMap;
  }
  public void setSchoolMap(Map<String, Banji> schoolMap) {
   this.schoolMap = schoolMap;
  }
  /**
   * 添加班级
   * @param banji
   */
  public void addBanji(Banji banji){
   schoolMap.put(banji.getClassName(), banji);
  }
  /**
   * 通过班级名称查询班级:
   * @param className
   * @return
   */
  public Banji searchByName(String className) {
   Banji b1=null;
   Set<String> s=schoolMap.keySet();
   for(String s1:s) {
    if(s1.equals(className)) {
     b1=schoolMap.get(s1);break;
    }
   }
   return b1;
  }
  /**
   * 删除班级
   * @param banji
   */
   public void deleteBanji(Banji banji){
    schoolMap.remove(banji.getClassName());
    System.out.println("删除成功!");
   }
   /**
    * 对各班语文成绩按平均分进行由大到小排序:
    */
   public void sortChineseByAverage() {
    Map<String,Float> scoreMap=new HashMap<String,Float>();
    Set<String> scoreList=schoolMap.keySet();//获取班级名称列表
    Banji bi=null;
    //遍历班级列表
    for(String s:scoreList) {
     bi=searchByName(s);
     if(bi==null) {
      System.out.println("未找到此班级");
     }else {
      float sum=0.0f;
      int i=0;
      List<Student> listStudent=bi.getStuList();//获取学生集合  3。获取每个班级的学生列表
      //用迭代器遍历学生集合
      Iterator<Student> it=listStudent.iterator();//遍历学生集合,计算语文成绩总分
      if(it.hasNext()) {
       i++;
       sum+=it.next().getChinese();
      }
      //获得平均分
      float ave=sum/i;//获取平均分
      scoreMap.put(s, ave);//以班级名称为键值,平均分为value值,存入map集合
     
     }
     List<Map.Entry<String, Float>> lm=new ArrayList<Map.Entry<String,Float>>();
     Collections.sort(lm,new Comparator<Map.Entry<String,Float>>()
     {
      public int compare(Entry<String,Float> o1,Entry<String,Float> o2)
      {
       return o2.getValue().compareTo(o1.getValue());
      }
     });
     for(Map.Entry<String,Float> mes:lm) {
      System.out.println("排序的数据为:");
      System.out.println(mes.getKey()+"的平均分:"+mes.getValue());
     }
    }
   
   }
   /**
    * 对各班数学成绩按平均分进行由大到小排序:
    */
   public void sortMathByAverage() {
    Map<String,Float> scoreMap=new HashMap<String,Float>();
    Set<String> scoreList=schoolMap.keySet();//获取班级名称列表
    Banji bi=null;
    //遍历班级列表
    for(String s:scoreList) {
     bi=this.searchByName(s);
     if(bi!=null) {
      float sum=0.0f;
      int i=0;
      List<Student> listStudent=bi.getStuList();//获取学生集合  3。获取每个班级的学生列表
      //用迭代器遍历学生集合
      Iterator<Student> it=listStudent.iterator();//遍历学生集合,计算语文成绩总分
      while(it.hasNext()) {
       i++;
       sum+=it.next().getMath();
      }
      //获得平均分
      float ave=sum/i;//获取平均分
      scoreMap.put(s, ave);//以班级名称为键值,平均分为value值,存入map集合
     }else {
      System.out.println("该班级不存在!");
     }
     List<Map.Entry<String, Float>> lm=new ArrayList<Map.Entry<String,Float>>();//将scoreMap中的每一个键值对存入List集合
     Collections.sort(lm,new Comparator<Map.Entry<String,Float>>()
     {
      public int compare(Entry<String,Float> o1,Entry<String,Float> o2)//对list集合进行排序重写compare方法
      {
       return o2.getValue().compareTo(o1.getValue());
      }
     });
     for(Map.Entry<String,Float> mes:lm) {
      System.out.println("排序的数据为:");
      System.out.println(mes.getKey()+"的平均分:"+mes.getValue());//输出排序后的数据
     }
    }
   }
   /**
    * 显示所有班级名称:
    */
   public void displayBanJiName() {
    Set<String> s=schoolMap.keySet();
    System.out.println("所有的班级名称为:");
    for(String n:s) {
     System.out.println(n);
    }
   }
   /**
    * 添加学生到班级中,查询是否有重复的学生信息
    * @param stuNum学生姓名
    * @return
    */
   public boolean seach(String stuNum) {
    int i=0;
    Iterator<Banji> it=schoolMap.values().iterator();
    while(it.hasNext()) {
     if(it.next().searchStudentByNum(stuNum)!=null) {
      i++;
     }
    }
    if(i>1)
     return true;
    else
     return false;
   }
}

import java.util.List;
import java.util.Scanner;

public class TestDemo {
 public void testBanji() {
  Student stu1=new Student("s001","张三");
  Student stu2=new Student("s002","李四");
  Student stu3=new Student("s003","王五");
  Student stu4=new Student("s004","五六");
  Banji b=new Banji("主班级");
  b.addStudent(stu1);
  b.addStudent(stu2);
  b.addStudent(stu3);
  b.addStudent(stu4);
  b.insertChineseScore(stu1.getStu(), 45f);
  b.insertChineseScore(stu2.getStu(), 56f);
  b.insertChineseScore(stu3.getStu(), 78f);
  b.insertChineseScore(stu4.getStu(), 412f);
  b.insertMathScore(stu1.getStu(), 74);
  b.insertMathScore(stu2.getStu(), 98);
  b.insertMathScore(stu3.getStu(), 75);
  b.insertMathScore(stu4.getStu(), 55);
  b.searchStudentByNum(stu1.getStu());
  b.deleteStudent(stu3.getStu());
  b.displayAllStudent();
 }
 public void testSchool1(){
  Student stu1=new Student("s001","张三");
  Student stu2=new Student("s002","李四");
  Student stu3=new Student("s003","王五");
  Student stu4=new Student("s004","五六");
  Banji b=new Banji("主班级");
  Banji t=new Banji("普通班");
  b.addStudent(stu1);
  b.addStudent(stu2);
  b.addStudent(stu3);
  b.addStudent(stu4);
  b.insertChineseScore(stu1.getStu(), 45f);
  b.insertChineseScore(stu2.getStu(), 56f);
  b.insertChineseScore(stu3.getStu(), 78f);
  b.insertChineseScore(stu4.getStu(), 412f);
  b.insertMathScore(stu1.getStu(), 74);
  b.insertMathScore(stu2.getStu(), 98);
  b.insertMathScore(stu3.getStu(), 75);
  b.insertMathScore(stu4.getStu(), 55);
  School s=new School();
  s.addBanji(b);
  s.addBanji(t);
  s.searchByName("主班级");
  s.searchByName("普通班");
  s.displayBanJiName();
  s.deleteBanji(t);
  System.out.println("删除之后:");
  s.displayBanJiName();
  s.sortChineseByAverage();
  s.sortMathByAverage();
  
 }
 //主菜单
  public void mainMenu(){
   System.out.println("*************************************");
   System.out.println("              **主菜单**");
   System.out.println("              1--班级管理 ");
   System.out.println("              2--学校管理 ");
   System.out.println("              0--退出 ");
   System.out.println("*************************************");
  }
  //班级管理菜单
  public void banJiMenu(){
   System.out.println("********************************************");
   System.out.println("              **班级主菜单**");
   System.out.println("              1--添加学生信息到主学生列表");
   System.out.println("              2--添加学生信息到普通班级");
   System.out.println("              3--通过学生名字查找学生信息");
   System.out.println("              4--输入班级学生的语文成绩");
   System.out.println("              5--输入班级学生的数学成绩");
   System.out.println("              6--删除学生信息");
   System.out.println("              7--显示所有学生的信息");
   System.out.println("              9--返回上一级菜单");
   System.out.println("********************************************");
  }
  //学校管理
  public void schoolMenu(){
   System.out.println("*********************************************************");
   System.out.println("              **学校管理菜单**");
   System.out.println("              1--创建班级");
   System.out.println("              2--删除班级");
   System.out.println("              3--通过班级名称查询班级信息");
   System.out.println("              4--对各班语文成绩按平均分进行由大到小排序");
   System.out.println("              5--对各班数学成绩按平均分进行由大到小排序");
   System.out.println("              6--显示所有班级名称");
   System.out.println("              9--返回上一级菜单");
   System.out.println("********************************************");
  }
 //主流程
 public void test() {
  TestDemo t=new TestDemo();
  Scanner sc=new Scanner(System.in);
  int input=0,input1=0,input2=0;
  //创建一个班级容器
  School banji=new School();
  //创建主学生列表
  Banji student=new Banji("000","主学生列表");
  //将主学生列表放进学校集合中
  banji.addBanji(student);
  //流程开始
  while(true) {
   t.mainMenu();
   System.out.println("请输入对应数字进行操作:");
   try{
    input=sc.nextInt();
   }catch(Exception e) {
    System.out.println("输入有误!请重新输入");
    sc.next();
    continue;
   }
   if(input==0) break;
   switch(input) {
   case 1:
    t.banJiMenu();
    System.out.println("请输入对应数字进行操作:");
    input1=sc.nextInt();
    if(input==9)
     break;
    switch(input1) {
    case 1:
     //添加学生信息到主学生列表
     System.out.println("将学生添加到主学生列表");
     System.out.println("请输入要添加的学生数量:");
     int count=sc.nextInt();
     for(int i=1;i<=count;i++) {
      System.out.println("请输入第"+i+"个学生的信息");
      System.out.println("请输入学生学号:");
      String stu=sc.next();
      System.out.println("请输入学生名字:");
      String stuNum=sc.next();
      //创建学生类对象
      Student student1=new Student(stu,stuNum);
      student.addStudent(student1);
     }
     student.displayAllStudent();
     break;
    case 2:
     //添加学生信息到普通班级
     System.out.println("将主学生列表中的学生信息添加到班级");
     System.out.println("请输入要添加的班级名称");
     String ban=sc.next();
     //通过名字查询查询班级
     Banji b1=banji.searchByName(ban);
     if(b1==null) {
      System.out.println("该班级不存在!请先添加班级到学校中");
     }else if(b1.equals(student)){
      System.out.println("不能选主学生列表添加!");
     }else {
      System.out.println("请输入要添加学生信息的数量:");
      int count2=0;
      try{
       count2=sc.nextInt();
      }catch(Exception e) {
       System.out.println("输入有误!请重新输入:");
       sc.next();
       continue;
      }
      if(count2>student.getStuList().size()) {
       System.out.println("输入的数值不能大于主学生列表的学生数量!");
       break;
      }
      for(int i=1;i<=count2;i++) {
       System.out.println("请输入学生ID:");
       String str2=sc.next();
       Student stu=student.searchStudentByNum(str2);
       if(stu==null) {
        System.out.println("该学生不存在!");
        break;
       }else if(banji.seach(str2)) {
        System.out.println("该学生已经添加到班级中了,不能添加!");
        break;
       }
       b1.addStudent(stu);
      }
     }
     b1.displayAllStudent();
     break;
    case 3:
     //通过学生名字查找学生信息
     System.out.println("通过学生名字查找学生信息");
     System.out.println("请输入要查找的学生班级名称:");
     String str2=sc.next();
     Banji b3=banji.searchByName(str2);
     if(b3==null) {
      System.out.println("该班级不存在!请核对班级名称");
     }else {
     System.out.println("请输入学生ID:");
     String str3=sc.next();
     Student stu3=b3.searchStudentByNum(str3);
     if(stu3==null) {
      System.out.println("该学生不在"+str2+"中!");
      break;
     }else {
      System.out.println(str3+"的信息为:");
      System.out.println(stu3);
     }
     }
     break;
    case 4:
     //输入班级学生的语文成绩
     System.out.println("输入班级学生的语文成绩");
     System.out.println("请输入要输入成绩的班级名称");
     String str4=sc.next();
     Banji b4=banji.searchByName(str4);
     if(b4==null) {
      System.out.println("该班级不存在!");
     }else {
      List<Student> list1=b4.getStuList();//获取该班级的学生信息表
      if(list1.size()==0) {
       System.out.println("该班级还未添加学生!请先添加学生");
      }
      for(int i=0;i<list1.size();i++) {
       String stuName=list1.get(i).getStu();
       System.out.println("学号为"+stuName);
       System.out.println("请输入成绩:");
       float sce=0;
       try{
        sce=sc.nextFloat();
       }catch(Exception e) {
        System.out.println("不能有非数字,请重新输入!");
        sc.next();
        continue;
       }
       b4.insertChineseScore(stuName, sce);
      }
      
     }
     break;
    case 5:
     //输入班级学生的数学成绩
     System.out.println("输入班级学生的数学成绩");
     System.out.println("请输入要输入成绩的班级名称");
     String str5=sc.next();
     Banji b5=banji.searchByName(str5);
     if(b5==null) {
      System.out.println("该班级不存在!");
     }else {
      List<Student> list1=b5.getStuList();//获取该班级的学生信息表
      if(list1.size()==0) {
       System.out.println("该班级还未添加学生!请先添加学生");
      }
      for(int i=0;i<list1.size();i++) {
       String stuName=list1.get(i).getStu();
       System.out.println("学号为"+stuName);
       System.out.println("请输入成绩:");
       float sce=0;
       try{
        sce=sc.nextFloat();
       }catch(Exception e) {
        System.out.println("不能有非数字,请重新输入!");
        sc.next();
        continue;
       }
       b5.insertMathScore(stuName, sce);
      }
      
     }
     break;
    case 6:
     //删除学生信息
     System.out.println("删除学生信息");
     System.out.println("请输入要删除学生的班级");
     String str6=sc.next();
     Banji b6=banji.searchByName(str6);
     if(b6==null) {
      System.out.println("该班级不存在!");
     }else {
      System.out.println("请输入要删除学生的学号:");
      String str66=sc.next();
      b6.deleteStudent(str66);
     }
     break;
    case 7:
     //显示所有学生的信息
     student.displayAllStudent();
     break;
    }
    break;
   case 2:
    t.schoolMenu();
    System.out.println("请输入对应的数字进行操作:");
    try {
    input2=sc.nextInt();
    }catch(Exception e) {
     System.out.println("输入有误!请重新输入");
     sc.next();
     continue;
    }
    if(input2==9)break;
    switch(input2) {
    case 1://创建班级
     System.out.println("创建班级");
     System.out.println("请输入班级ID:");
     String id=sc.next();
     System.out.println("请输入班级名称:");
     String name=sc.next();
     //创建班级
     Banji b1=new Banji(id,name);
     banji.addBanji(b1);
     break;
    case 2://删除班级
     System.out.println("删除班级");
     System.out.println("请输入要删除的班级名称:");
     String classname=sc.next();
     Banji b2=banji.searchByName(classname);
     if(b2==null) {
      System.out.println("该班级不存在!");
     }else if(b2.equals(student)) {
      System.out.println("主学生列表不能删除!");
     }else {
      banji.deleteBanji(b2);
     }
     break;
    case 3://通过班级名称查询班级信息
     System.out.println("通过班级名称查询班级信息");
     System.out.println("请输入要查询的班级名称:");
     String str3=sc.next();
     Banji b3=banji.searchByName(str3);
     if(b3==null) {
      System.out.println("该班级不存在!");
     }else {
      b3.displayAllStudent();
     }
     break;
    case 4://对各班语文成绩按平均分进行由大到小排序
     banji.sortChineseByAverage();
     break;
    case 5://对各班数学成绩按平均分进行由大到小排序
     banji.sortMathByAverage();
     break;
    case 6://显示所有班级名称
     System.out.println("显示所有班级名称");
     banji.displayBanJiName();
     break;
    default:
                    System.out.println("输入不正确,请重新输入!");
                    break;
    }
    break;
   
   }
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  TestDemo t=new TestDemo();
  //t.testBanji();
  //t.testSchool();
  t.test();
 }

}


正在回答 回答被采纳积分+1

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

2回答
好帮手慕酷酷 2019-08-13 15:24:25

同学你好,修改后的语文成绩排序的代码如下:

// 对各班语文成绩按平均分进行由大到小排序
	public void sortChineseByAverage() {
		Map<String, Float> score = new HashMap<String, Float>();
		Banji banJi = null;
		List<Student> stuList = null;
		float sum = 0.0f;
		float average = 0.0f;
		// 求各班平均分
		// 得到所有班对应的班级名称,根据名称得到班级对象
		Set<String> nameSet = schoolMap.keySet();
		if (nameSet != null) {
			for (String s : nameSet) {
				if (s.equals("主学生列表"))
					continue;
				sum = 0.0f;
				banJi = schoolMap.get(s);
				stuList = banJi.getStuList();
				if (stuList != null) {
					for (Student stu : stuList) {
						sum = sum + stu.getChinese();
					}
					// 求平均分
					average = sum / stuList.size();
					// 将每个班级的平均分添加到列表score中
					score.put(banJi.getClassName(), average);
				} else {
					System.out.println("该班级没有学生!");
				}
			}
		} else {
			System.out.println("还未添加班级!");
		}
		// 输出排序后的学生成绩(提供排序的代码)
		// 先将Map转换到List中,也就是将Map的Entry存放的List中
		List<Map.Entry<String, Float>> list = new ArrayList<Map.Entry<String, Float>>(score.entrySet());
		// 按照Map的Value值进行排序
		Collections.sort(list, new Comparator<Map.Entry<String, Float>>() {
			// 降序排序
			@Override
			public int compare(Entry<String, Float> o1, Entry<String, Float> o2) {
				// return o1.getValue().compareTo(o2.getValue());
				return o2.getValue().compareTo(o1.getValue());
			}
		});

		for (Map.Entry<String, Float> mapping : list) {
			System.out.println(mapping.getKey() + ":" + mapping.getValue());
		}

	}

数学成绩排序:

	public void sortMathByAverage() {
		Map<String, Float> score = new HashMap<String, Float>();
		Banji banJi = null;
		List<Student> stuList = null;
		float sum = 0.0f;
		float average = 0.0f;
		// 求各班平均分
		// 得到所有班对应的班级名称,根据名称得到班级对象
		Set<String> nameSet = schoolMap.keySet();
		if (nameSet != null) {
			for (String s : nameSet) {
				if (s.equals("主学生列表"))
					continue;
				sum = 0.0f;
				banJi = schoolMap.get(s);
				stuList = banJi.getStuList();
				if (stuList != null) {
					for (Student stu : stuList) {
						sum = sum + stu.getMath();
					}
					// 求平均分
					average = sum / stuList.size();
					// 将每个班级的平均分添加到列表score中
					score.put(banJi.getClassName(), average);
				} else {
					System.out.println("该班级没有学生!");
				}
			}
		} else {
			System.out.println("还未添加班级!");
		}
		// 输出排序后的学生成绩(提供排序的代码)
		// 先将Map转换到List中,也就是将Map的Entry存放的List中
		List<Map.Entry<String, Float>> list = new ArrayList<Map.Entry<String, Float>>(score.entrySet());
		// 按照Map的Value值进行排序
		Collections.sort(list, new Comparator<Map.Entry<String, Float>>() {
			// 降序排序
			@Override
			public int compare(Entry<String, Float> o1, Entry<String, Float> o2) {
				// return o1.getValue().compareTo(o2.getValue());
				return o2.getValue().compareTo(o1.getValue());
			}
		});

		for (Map.Entry<String, Float> mapping : list) {
			System.out.println(mapping.getKey() + ":" + mapping.getValue());
		}
	}

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

好帮手慕酷酷 2019-08-13 11:03:28

同学你好,代码完成的很棒,成绩排序的问题是因为:

  • 需要判断key是否为“主学生列表”,如果是,则跳过本次循环

  • 需要将Map的Entry存放的List中

    以语文成绩排序具体修改如下:

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

同理数学成绩平均分排序修改也参照上方哦~同学尝试修改一下~

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

  • 提问者 谢永畅 #1
    老师是把那个scoreMap.entryset(),先存放到一个list集合中,在把那个list集合放到当前位置吗?
    2019-08-13 12:14:01
  • 好帮手慕酷酷 回复 提问者 谢永畅 #2
    同学你好,就是将scoreMap中的Entry存放到list集合中。按照上图修改即可哦~ 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-08-13 13:41:28
  • 提问者 谢永畅 #3
    老师刚刚哪个问题完成了。还有一个问题,为什么输出只有一个数平均分,其他的排序不是增强型for循环输出吗? 问题在哪里@_@
    2019-08-13 14:43:18
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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