首页 > 代码库 > java 17 - 9 HashSet集合、TreeSet集合的练习
java 17 - 9 HashSet集合、TreeSet集合的练习
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 stub17 }18 19 20 @Override21 public String toString() {22 return "Student [name=" + name + ", chinese=" + chinese23 + ", 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 stub17 }18 19 20 @Override21 public String toString() {22 return "Student [name=" + name + ", chinese=" + chinese23 + ", 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集合的练习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。