- 0
- 0
- 约4.25千字
- 约 13页
- 2026-03-02 发布于山东
- 举报
项目十一集合应用技术任务三使用集合实现成绩从高到低排序Java程序设计任务驱动教程
项目十一集合应用技术任务一使用集合保存录入的班级学生考试成绩任务二使用集合统计班级成绩任务三使用集合实现成绩从高到低排序
任务要求期中考试结束了,老师要按成绩从高到低的顺序输出学生成绩,实现如下图的效果,请选择合适的集合实现
1.Set接口Set接口继承自Collection接口,一般将实现了Set接口的对象称为Set集合。Set集合中的元素是无序、不可重复的。Set接口存取元素的方式和List接口相同。Set接口的两个实现类是HashSet类和TreeSet类。
2.HashSet类HashSetSet接口的实现类,它存储的元素不可重复。使用场景:在存储用户id、订单id等唯一标识符时,可以使用HashSet来确保集合中不含有重复的元素HashSet主要特点1无序性与ArrayList或LinkedList不同,HashSet中的元素是无序的2唯一性每个元素在HashSet中只会出现一次,因为其基于哈希表实现,所以具有很好的唯一性保证。3高效查找根据学号查找学生,修改成绩并更新集合
2.HashSet类示例//创建HashSet类对象HashSetStringuserIds=newHashSet();userIds.add(002);//添加元素userIds.add(001);userIds.add(003);userIds.add(001);//重复添加用户id001,HashSet类会自动忽略重复数据System.out.println(userIds);//输出:[001,002,003示例:使用HashSet存储不重复的用户id注意:由于用户id不能重复,使用HashSet存储如果重复添加用户id“001”,会自动忽略HashSet对象不保证元素的插入顺序,观察输出顺序和插入顺序不一样输出[001,002,003]
3.TreeSet类TreeSetSet接口的实现类,它存储的元素不可重复。TreeSet底层是自平衡的排序二叉树,因此既能保证元素的唯一性,又可以对元素进行排序HashSet主要特点1有序性TreeSet中的元素默认按自然顺序排序。对于基本数据类型(如整数、浮点数等),TreeSet中的元素按从小到大排序;对于字符串TreeSet中的元素按字母顺序排序。还可以自定义排序。通过实现比较器(Comparator)接口并将其传递给TreeSet构造函数实现自定义排序规则可以按逆序、长度等对字符串进行排列2唯一性不允许存储重复的元素。在存储需要排序的数据时,如学生的成绩列表,可以使用TreeSet类实现对成绩的自动排序。
3.TreeSet类示例//创建HashSet类对象TreeSetIntegerscores=newTreeSetInteger();//创建TreeSet对象scores.add(80);//添加元素scores.add(92);scores.add(77);scores.add(80);System.out.println(scores);//程序输出[77,80,92],//元素自动按升序排列,且去掉重复的元素8示例:使用TreeSet存储学生成绩,并升序排列输出注意:存储的成绩不能重复,可以使用TreeSet,也可以使用HashSet成绩需要升序,故使用TreeSet,默认升序输出[77,80,92]
任务实现:步骤分析创建Student类包含学生信息的JavaBean,已在任务一中创建好创建自定义比较器类StudentComparator实现ComparatorStudent接口,并实现compare方法,根据自定义的比较逻辑返回两个对象的大小关系。此处按成绩从高到低排序,如果成绩相同,则按照姓氏的拼音首字母顺序升序排列创建TestSet类将自定义比较器对象传递给TreeSet构造方法,实现学生信息的存储和排序
任务实现:代码详解(1)-自定义学生比较器类StudentComparator核心代码(Java)代码解读实现Comparator接口实现Java自带的ComparatorStudent泛型接口;并且泛型指定为Student,表示这个比较器专门用于比较Student类型的对象关键点总结多条件排序(优先成绩,其次姓名),Dpare(a,b)是安全的double类型比较方式,stu2在前
您可能关注的文档
- MySQL数据库原理及应用课件 项目3 创建与维护MySQL数据库.pptx
- MySQL数据库原理及应用课件 项目4 创建与维护学生信息管理数据表.pptx
- MySQL数据库原理及应用课件 项目6 优化查询学生信息管理数据库.pptx
- MySQL数据库原理及应用课件 项目7 以程序方式处理学生信息管理数据表.pptx
- MySQL数据库原理及应用课件 项目8 维护学生信息管理数据库的安全性.pptx
- Java程序设计任务驱动教程课件 项目1 任务1 Java开发环境配置.pptx
- Java程序设计任务驱动教程课件 项目1 任务2 编写第一个Java程序.pptx
- Java程序设计任务驱动教程课件 项目2 任务1 使用集成开发工具开发 Java 程序.pptx
- Java程序设计任务驱动教程课件 项目3 任务1 计算圆的面积 — Java基本语法的使用1.pptx
- Java程序设计任务驱动教程课件 项目3 任务1 计算圆的面积 — Java基本语法的使用2.pptx
最近下载
- 2020锦悦府地产项目夏日冰雪大世界主题嘉年华活动策划案.pptx VIP
- 会计行业分析报告及未来三年行业发展报告.docx
- DB21_T 4001-2024 辽宁省高速公路日常养护预算定额.docx VIP
- 重组人胰岛素生产工艺.pptx VIP
- 中职《心理健康与职业生涯》全册教案.docx VIP
- DB3210_T 1141-2023 扬州盐水鹅制作技艺.docx VIP
- 五四精神传薪火青春挺膺担当课件高中下学期五四青年节主题教育班会.pptx VIP
- 2023年山东省青岛市局属公办普通高中自主招生统一笔试物理试卷.pdf VIP
- 住小区临时用水施工方案.doc VIP
- 第三章_维普与万方.ppt VIP
原创力文档

文档评论(0)