Java程序设计任务驱动教程课件 项目11 任务3 使用集合实现成绩从高到低排序.pptxVIP

  • 0
  • 0
  • 约4.25千字
  • 约 13页
  • 2026-03-02 发布于山东
  • 举报

Java程序设计任务驱动教程课件 项目11 任务3 使用集合实现成绩从高到低排序.pptx

项目十一集合应用技术任务三使用集合实现成绩从高到低排序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在前

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档