栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础——学生成绩信息排序(TreeSet)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础——学生成绩信息排序(TreeSet)

需求:键盘录入3个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台。

 * 步骤: 
 * 		a: 自定义一个学生类
 * 		b: 创建一个TreeSet集合对象(使用比较器进行排序)
 * 		c: 键盘录入学生的数据,然后把学生的数据封装成一个学生对象,把学生对象添加到集合中
 * 		d: 遍历集合

定义测试类

package org.westos.demo93;

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

public class MyTest {
    public static void main(String[] args) {
        TreeSet treeSet = new TreeSet<>(new Comparator() {
            @Override
            public int compare(Student s1, Student s2) {
                //按照总分排序
                int num = s1.getTotalScore() - s2.getTotalScore();
                //如果总分一样,再比较一下姓名
                int num2=num==0?s1.getName().compareTo(s2.getName()):num;
                return -num2;
            }
        });

        for (int i = 1; i <= 3; i++) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入第"+i+"个学生的姓名");
            String name = scanner.nextLine();
            Student student = new Student();
            student.setName(name);
            System.out.println("请输入第"+i+"个学生的语文成绩");
            int yw = scanner.nextInt();
            student.setChineseScore(yw);
            System.out.println("请输入第" + i + "个学生的数学成绩");
            int sx = scanner.nextInt();
            student.setMathScore(sx);
            System.out.println("请输入第" + i + "个学生的英语成绩");
            int yy = scanner.nextInt();
            student.setEnglishScore(yy);
            //把学生对象,放到集合中
            treeSet.add(student);
        }

        //遍历集合,输出一个漂亮的内容
        System.out.println("序号t姓名t语文t数学t英语t总分");
        int i=1;
        for (Student student : treeSet) {
            System.out.println((i++)+"t"+student.getName()+"t"+student.getChineseScore()+"t"+student.getMathScore()+"t"+student.getEnglishScore()+"t"+student.getTotalScore());
        }
    }
}

定义学生类

package org.westos.demo93;

public class Student {
    private String name;
    private int chineseScore;
    private int mathScore;
    private int englishScore;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getChineseScore() {
        return chineseScore;
    }

    public void setChineseScore(int chineseScore) {
        this.chineseScore = chineseScore;
    }

    public int getMathScore() {
        return mathScore;
    }

    public void setMathScore(int mathScore) {
        this.mathScore = mathScore;
    }

    public int getEnglishScore() {
        return englishScore;
    }

    public void setEnglishScore(int englishScore) {
        this.englishScore = englishScore;
    }
    //获取总分的方法
    public int getTotalScore() {
        return chineseScore+mathScore+englishScore;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592523.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号