全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java笔试题 将集合中的学生信息按照学生的年龄升序排列使用了2种方式完成将集合中学生信息按照年龄升序排序的操作。当然,完成对集合中元素排序的操作会有很多方法,这里只是给出2种参考方法,希望会对大家有所帮助和启示。作者:秦婧|2017-01-16 13:45收藏分享最近很多学员在参加笔试时都被问到集合中排序的问题,在新年的第一篇文章中给大家分享一下相关内容。“将集合中的学生信息按照学生的年龄升序排列”这个题目主要考察的是求职者对集合中元素存取以及元素值比较的方法、排序方法(一般使用冒泡排序)、泛型集合、集合中自带的sort方法、集合中比较器的应用等。下面分别使用冒泡排序和Sort完成题目的要求。无论使用哪种方法都需要先创建学生信息类,通常会要求在类中存放学号、年龄、姓名等属性。学生信息类的代码如下所示。1. classStudent2. privateintid;3. privateStringname;4. privateintage;5. publicStudent(intid,Stringname,intage)6. this.id=id;7. =name;8. this.age=age;9. 10. publicintgetId()11. returnid;12. 13. publicvoidsetId(intid)14. this.id=id;15. 16. publicStringgetName()17. returnname;18. 19. publicvoidsetName(Stringname)20. =name;21. 22. publicintgetAge()23. returnage;24. 25. publicvoidsetAge(intage)26. this.age=age;27. 28. Override29. publicStringtoString()30. returnStudentid=+id+,name=+name+,age=+age+;31. 32. (1)使用冒泡排序算法由于题目要求是按照学生的年龄排序,因此,在遍历集合元素时要根据年龄进行比较,并交换集合中相应元素的值。实现的代码如下所示。1. publicclassTestStudent2. 3. publicstaticvoidmain(Stringargs)4. /TODOAuto-generatedmethodstub5. Listlist=newArrayList();6. list.add(newStudent(1,小张,20);7. list.add(newStudent(2,小王,18);8. list.add(newStudent(3,小李,19);9. /使用冒泡排序算法10. for(inti=0;ilist.size()-1;i+)11. for(intj=0;jlist.get(j+1).getAge()13. Studentstudent=list.get(j);14. list.set(j,list.get(j+1);15. list.set(j+1,student);16. 17. 18. 19. for(Studentstu:list)20. System.out.println(stu);21. 22. 23. 执行上面的代码,效果如图1所示。图1 排序后的结果(2)使用比较器实现在List集合中提供了sort方法能直接对集合中的元素实现冒泡排序,但由于在集合中存放的值是类的实例,而不是单纯的值,因此,需要借助集合中的比较器来实现对学生信息类的年龄排序。使用比较器可以通过实现Comparator接口或者实现Comparable接口来完成,实现Comparator接口时,通常是自定义一个类来完成,并重写compare方法;实现Comparable接口时,通常是直接用到要比较的类中,并重写compareTo方法,比如,要比较学生信息类中的年龄属性值,直接在学生信息类中实现Comparable接口即可。在本例中采用的方式是实现Comparator接口的方式,自定义一个名为MyCompare的类,代码如下所示。1. publicclassTestStudent2. publicstaticvoidmain(Stringargs)3. /TODOAuto-generatedmethodstub4. Listlist=newArrayList();5. list.add(newStudent(1,小张,20);6. list.add(newStudent(2,小王,18);7. list.add(newStudent(3,小李,19);8. Collections.sort(list,newMyCompare();/使用比较器9. for(Studentstu:list)10. System.out.println(stu);11. 12. 13. 执行上面的代码,效果与图1一致。至此,使用了2种方式完成将集合中学生信息按照年龄升序排序的操作。当然,完成对集合中元素排序的操作会有很多方法,这里只是给出2种参考方法,希望会对大家有所帮助和启示。【编辑推荐】1. Ja
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临沂市兰山区教师招聘考试参考题库及答案解析
- 《GB-T 37151-2018基于地形图标准分幅的遥感影像产品规范》专题研究报告
- 横机工安全技能测试模拟考核试卷含答案
- 宝剑工岗前活动策划考核试卷含答案
- 筑路工安全管理强化考核试卷含答案
- 中药质检员风险评估测试考核试卷含答案
- 充填回收工岗前竞争考核试卷含答案
- 在线学习服务师岗位工艺技术规程
- 酸洗钝化工岗前诚信道德考核试卷含答案
- 酒精原料粉碎工变更管理模拟考核试卷含答案
- 2025年AHA心肺复苏与心血管急救指南解读
- 江苏省公务员2025年公安基础知识测试卷
- 2025至2030胶原蛋白行业项目调研及市场前景预测评估报告
- 超声科甲状腺超声检查要点指导
- 2025二手货车买卖合同书
- 2026年中国球墨铸铁管件行业市场前景预测及投资价值评估分析报告
- 临时消防阀门井砌筑施工方案
- 佳木斯大学招聘考试真题2024
- 老年医学进修汇报
- 税务风险培训课件
- 2025年广东选调考试真题
评论
0/150
提交评论