Java笔试题 将集合中的学生信息按照学生的年龄升序排列

1970-01-01 08:00

Java笔试题 将集合中的学生信息按照学生的年龄升序排列

使用了2种方式完成将集合中学生信息按照年龄升序排序的操作。当然,完成对集合中元素排序的操作会有很多方法,这里只是给出2种参考方法,希望会对大家有所帮助和启示。

作者:秦婧|2017-01-16 13:45

收藏 分享

最近很多学员在参加笔试时都被问到集合中排序的问题,在新年的第一篇文章中给大家分享一下相关内容。“将集合中的学生信息按照学生的年龄升序排列”这个题目主要考察的是求职者对集合中元素存取以及元素值比较的方法、排序方法(一般使用冒泡排序)、泛型集合、集合中自带的sort方法、集合中比较器的应用等。下面分别使用冒泡排序和Sort完成题目的要求。

无论使用哪种方法都需要先创建学生信息类,通常会要求在类中存放学号、年龄、姓名等属性。学生信息类的代码如下所示。

1. class Student { 2. private int id; 3. private String name; 4. private int age;

5. public Student(int id, String name, int age) {

6. this.id = id;

7. this.name = name; 8. this.age = age; 9. }

10. public int getId() { 11. return id; 12. }

13. public void setId(int id) { 14. this.id = id; 15. }

16. public String getName() { 17. return name; 18. }

19. public void setName(String name) { 20. this.name = name; 21. }

22. public int getAge() { 23. return age; 24. }

25. public void setAge(int age) { 26. this.age = age; 27. }

28. @Override

29. public String toString() {

30. return \ + id + \ + name + \ + age + \; 31. } 32. }

(1)使用冒泡排序算法

由于题目要求是按照学生的年龄排序,因此,在遍历集合元素时要根据年龄进行比较,并交换集合中相应元素的值。实现的代码如下所示。

1. public class TestStudent { 2.

3. public static void main(String[] args) { 4. // TODO Auto-generated method stub

5. List list = new ArrayList(); 6. list.add(new Student(1,\小张\,20)); 7. list.add(new Student(2,\小王\,18)); 8. list.add(new Student(3,\小李\,19)); 9. //使用冒泡排序算法

10. for(int i=0;i

12. if(list.get(j).getAge()>list.get(j+1).getAge()){ 13. Student student=list.get(j); 14. list.set(j, list.get(j+1)); 15. list.set(j+1, student); 16. } 17. } 18. }

19. for(Student stu:list){ 20. System.out.println(stu); 21. } 22. } 23. }

执行上面的代码,效果如图1所示。

图1 排序后的结果

(2)使用比较器实现

在List集合中提供了sort方法能直接对集合中的元素实现冒泡排序,但由于在集合中存放的值是类的实例,而不是单纯的值,因此,需要借助集合中的比较器来实现对学生信息类的年龄排序。使用比较器可以通过实现Comparator接口或者实现Comparable接口来完成,实现Comparator接口时,通常是自定义一个类来完成,并重写compare方法;实现Comparable接口时,通常是直接用到要比较的类中,并重写compareTo方法,比如,要比较学生信息类中的年龄属性值,直接在学生信息类中实现Comparable接口即可。

在本例中采用的方式是实现Comparator接口的方式,自定义一个名为MyCompare的类,代码如下所示。

1. public class TestStudent {

2. public static void main(String[] args) { 3. // TODO Auto-generated method stub

4. List list = new ArrayList(); 5. list.add(new Student(1,\小张\,20)); 6. list.add(new Student(2,\小王\,18)); 7. list.add(new Student(3,\小李\,19));

8. Collections.sort(list,new MyCompare()); //使用比较器 9. for(Student stu:list){

10. System.out.println(stu); 11. } 12. } 13. }

执行上面的代码,效果与图1一致。

至此,使用了2种方式完成将集合中学生信息按照年龄升序排序的操作。当然,完成对集合中元素排序的操作会有很多方法,这里只是给出2种参考方法,希望会对大家有所帮助和启示。

【编辑推荐】

1. JavaScript与PHP到底有何不同?

2. 9款极佳的JavaScript移动应用程序开发框架 3. Java 9的这一基本功能,你可能从未听过 4. 2016最流行的Java EE服务器

5. Java开发者需要了解的移动开发编程语言


Java笔试题 将集合中的学生信息按照学生的年龄升序排列.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014届四川成都七中实验学校九年级上期期中考试历史试卷(带解析)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: