zoukankan      html  css  js  c++  java
  • java 17

    
    

    TreeSet集合的练习:

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

      分析:
        A:定义学生类
        B:创建一个TreeSet集合 使用内部匿名方法实现
        C:总分从高到底如何实现呢?
        D:键盘录入5个学生信息
        E:遍历TreeSet集合

    学生类:

     1 package zl_TreeSetTest;
     2 /*
     3      创建学生类
     4      成员变量:
     5          A:姓名
     6          B:语文成绩   数学成绩  英语成绩   
     7  */
     8 public class Student {
     9         private String name ;
    10         private int chinese;
    11         private int english;
    12         private int math;
    13         
    14         public Student() {
    15             super();
    16             // TODO Auto-generated constructor stub
    17         }
    18         
    19         
    20         @Override
    21         public String toString() {
    22             return "Student [name=" + name + ", chinese=" + chinese
    23                     + ", english=" + english + ", math=" + math + "]";
    24         }
    25 
    26 
    27         public String getName() {
    28             return name;
    29         }
    30         public void setName(String name) {
    31             this.name = name;
    32         }
    33         public int getChinese() {
    34             return chinese;
    35         }
    36         public void setChinese(int chinese) {
    37             this.chinese = chinese;
    38         }
    39         public int getEnglish() {
    40             return english;
    41         }
    42         public void setEnglish(int english) {
    43             this.english = english;
    44         }
    45         public int getMath() {
    46             return math;
    47         }
    48         public void setMath(int math) {
    49             this.math = math;
    50         }
    51 
    52         //按照总分从高到低输出到控制台
    53         public int getsum (){
    54             int sum = this.chinese + this.english + this.math;
    55             return sum;
    56         }
    57         
    58         
    59         
    60         
    61 }

    测试类:

     1 package zl_TreeSetTest;
     2 
     3 import java.util.Comparator;
     4 import java.util.Scanner;
     5 import java.util.TreeSet;
     6 
     7 /*
     8  键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
     9 
    10  分析:
    11  A:定义学生类
    12  B:创建一个TreeSet集合   使用内部匿名方法实现
    13  C:总分从高到底如何实现呢?        
    14  D:键盘录入5个学生信息
    15  E:遍历TreeSet集合
    16  */
    17 public class StudentTest {
    18 
    19     public static void main(String[] args) {
    20         // 创建一个TreeSet集合
    21         TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
    22             public int compare(Student s1, Student s2) {
    23                 // 首先比较总分
    24                 int num1 = s2.getsum() - s2.getsum();
    25                 // 总分相同,但语文成绩未必相同
    26                 int num2 = num1 == 0 ? s1.getChinese() - s2.getChinese() : num1;
    27                 // 语文成绩也相同的话,但是英语成绩未必也相同
    28                 int num3 = num2 == 0 ? s1.getEnglish() - s2.getEnglish() : num2;
    29                 // 。。。数学成绩未必相同:
    30                 int num4 = num3 == 0 ? s1.getMath() - s2.getMath() : num3;
    31                 // 成绩方面都相同的话,但是你名字肯定不相同吧。。
    32                 int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName())
    33                         : num4;
    34 
    35                 return num5;
    36             }
    37 
    38         });
    39 
    40         System.out.println("--------录入学生信息--------");
    41         for(int x = 1; x<= 5 ;x++) {
    42             
    43             // 键盘录入
    44             Scanner sc = new Scanner(System.in);
    45             
    46             System.out.println("请输入第" + x + "位学生的名字:");
    47             String name = sc.nextLine();
    48             System.out.println("请输入第" + x + "位学生的语文成绩:");
    49             int chinese = sc.nextInt();
    50             System.out.println("请输入第" + x + "位学生的数学成绩:");
    51             int Math = sc.nextInt();
    52             System.out.println("请输入第" + x + "位学生的英语成绩:");
    53             int english = sc.nextInt();
    54 
    55             // 把数据录入学生类中
    56             Student s = new Student();
    57             s.setName(name);
    58             s.setChinese(chinese);
    59             s.setMath(Math);
    60             s.setEnglish(english);
    61 
    62             // 在把学生类放进集合中
    63             ts.add(s);
    64 
    65         }
    66 
    67         // 进行遍历
    68         for (Student s : ts) {
    69             System.out.println(s.getChinese() + "	" + s.getMath() + "	"
    70                     + s.getEnglish() + "	" + s.getsum());
    71         }
    72 
    73     }
    74 
    75 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹
    转载:自动化运维工具——ansible详解
    转载:MySQL 高性能优化实战全解!
    转载:Kafka的基本概念、特点、部署和配置、监控和管理
    Centos7 忘记密码的情况下,修改root或其他用户密码
    win10管理员已阻止你运行此应用
    转载:如何查看Linux系统的状态信息
    COAP协议全面分析--转载
    URL&HTTP协议&GET请求&POST请求
    邮箱正则表达---转载
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5904394.html
Copyright © 2011-2022 走看看