码迷,mamicode.com
首页 > 编程语言 > 详细

java 17 - 9 HashSet集合、TreeSet集合的练习

时间:2016-09-24 23:14:38      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:

HashSet集合的练习

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 }

 

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() + "\t" + s.getMath() + "\t"
70                     + s.getEnglish() + "\t" + s.getsum());
71         }
72 
73     }
74 
75 }

 

java 17 - 9 HashSet集合、TreeSet集合的练习

标签:

原文地址:http://www.cnblogs.com/LZL-student/p/5904394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!