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的自学历程...只需坚持
  • 相关阅读:
    SQLMAP注入教程-11种常见SQLMAP使用方法详解
    VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能
    解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
    Spring Data JPA one to one 共享主键关联
    JHipster 问题集中
    Spring Data JPA 定义超类
    Spring Data JPA查询关联数据
    maven命名
    maven仓库
    Jackson读取列表
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5904394.html
Copyright © 2011-2022 走看看