日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java筆試題:將集合中的學(xué)生信息按照學(xué)生的年齡升序排列

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

成都創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)公司依托強(qiáng)大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!

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

 
 
  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 "Student [id=" + id + ", name=" + name + ", age=" + age + "]"; 
  31.     } 
  32. }     

(1)使用冒泡排序算法

由于題目要求是按照學(xué)生的年齡排序,因此,在遍歷集合元素時要根據(jù)年齡進(jìn)行比較,并交換集合中相應(yīng)元素的值。實現(xiàn)的代碼如下所示。

 
 
  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
  11.             for(int j=0;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.     } 

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

圖1 排序后的結(jié)果

(2)使用比較器實現(xiàn)

在List集合中提供了sort方法能直接對集合中的元素實現(xiàn)冒泡排序,但由于在集合中存放的值是類的實例,而不是單純的值,因此,需要借助集合中的比較器來實現(xiàn)對學(xué)生信息類的年齡排序。使用比較器可以通過實現(xiàn)Comparator接口或者實現(xiàn)Comparable接口來完成,實現(xiàn)Comparator接口時,通常是自定義一個類來完成,并重寫compare方法;實現(xiàn)Comparable接口時,通常是直接用到要比較的類中,并重寫compareTo方法,比如,要比較學(xué)生信息類中的年齡屬性值,直接在學(xué)生信息類中實現(xiàn)Comparable接口即可。

在本例中采用的方式是實現(xiàn)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.     } 

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

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


新聞名稱:Java筆試題:將集合中的學(xué)生信息按照學(xué)生的年齡升序排列
網(wǎng)頁URL:http://www.5511xx.com/article/dpeopeo.html