成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java筆試題:將集合中的學生信息按照學生的年齡升序排列

開發 開發工具
使用了2種方式完成將集合中學生信息按照年齡升序排序的操作。當然,完成對集合中元素排序的操作會有很多方法,這里只是給出2種參考方法,希望會對大家有所幫助和啟示。

最近很多學員在參加筆試時都被問到集合中排序的問題,在新年的***篇文章中給大家分享一下相關內容。“將集合中的學生信息按照學生的年齡升序排列”這個題目主要考察的是求職者對集合中元素存取以及元素值比較的方法、排序方法(一般使用冒泡排序)、泛型集合、集合中自帶的sort方法、集合中比較器的應用等。下面分別使用冒泡排序和Sort完成題目的要求。

無論使用哪種方法都需要先創建學生信息類,通常會要求在類中存放學號、年齡、姓名等屬性。學生信息類的代碼如下所示。

  1. class Student {  
  2.     private int id; 
  3.     private String name
  4.     private int age;         
  5.     public Student(int id, String nameint 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 "Student [id=" + id + ", name=" + name + ", age=" + age + "]"
  31.     } 
  32. }     

(1)使用冒泡排序算法

由于題目要求是按照學生的年齡排序,因此,在遍歷集合元素時要根據年齡進行比較,并交換集合中相應元素的值。實現的代碼如下所示。

  1. public class TestStudent { 
  2.  
  3.     public static void main(String[] args) { 
  4.         // TODO Auto-generated method stub 
  5.         List<Student> list = new ArrayList<Student>(); 
  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<list.size()-1;i++){ 
  11.             for(int j=0;j<list.size()-1-i;j++){ 
  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.     } 

執行上面的代碼,效果如圖1所示。

圖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<Student> list = new ArrayList<Student>(); 
  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.     } 

執行上面的代碼,效果與圖1一致。

至此,使用了2種方式完成將集合中學生信息按照年齡升序排序的操作。當然,完成對集合中元素排序的操作會有很多方法,這里只是給出2種參考方法,希望會對大家有所幫助和啟示。

責任編輯:武曉燕 來源: 51CTO.com
相關推薦

2021-09-30 09:02:33

TreeMap集合Map

2012-05-27 20:12:30

Windows Pho

2009-03-11 10:56:22

實習生應聘IBM

2009-06-15 17:18:25

Java筆試題

2009-04-25 00:18:33

2012-06-28 14:34:23

Java筆試題面試題

2009-03-05 09:34:22

畢業生面試招聘

2018-03-29 15:37:28

蘋果教育iPad

2013-08-09 11:26:48

英特爾學生互動

2019-10-28 00:02:35

黑客網絡安全網絡攻擊

2018-08-09 21:44:35

信息化教育北京市教委

2009-06-22 13:43:00

java算法

2009-09-28 09:32:14

Java工程師筆試

2022-09-19 10:11:25

Moodle開源軟件包

2015-05-25 14:32:15

翻轉課堂華為

2021-07-25 20:30:33

前端開發技術

2015-04-28 09:36:20

.NET頻率高筆試題

2011-11-03 09:46:39

社交網絡

2016-10-13 16:28:48

2012-02-20 10:29:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人一区 | 亚洲午夜精品在线观看 | 一区二区在线 | 日韩成人一区 | 黄色一级大片在线免费看产 | 综合九九| 国产一级视频免费播放 | 国产精品国产a级 | 久久99精品久久久水蜜桃 | 国产成人在线一区二区 | 中文字幕亚洲精品 | caoporn国产精品免费公开 | 欧美区日韩区 | 久久久久久精 | 精品久久电影 | 中文字幕av一区二区三区 | 国产欧美日韩精品一区二区三区 | 久热免费 | 免费精品| 精品国产一区二区三区性色av | 日韩一级 | 国产一区二区三区在线 | 久久剧场| 69xxx免费| 亚洲成网站 | 91精品国产91久久久久久不卞 | 久久久久久91香蕉国产 | 亚洲午夜久久久 | 国产91网站在线观看 | 久久国产亚洲 | 国产精品一区二 | 成人免费看片又大又黄 | 久久999 | 国产精品久久久久久久久免费樱桃 | 国产精品精品 | 香蕉久久久久久 | 亚洲人人舔人人 | 黄色毛片一级 | www.久久艹 | 日本不卡一区 | 免费看淫片 |