最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java對(duì)ArrayList排序代碼示例

 更新時(shí)間:2015年11月13日 11:46:31   作者:sunmenggmail  
本文通過(guò)代碼示例給大家介紹java對(duì)arraylist排序,代碼簡(jiǎn)潔易懂,感興趣的朋友一起學(xué)習(xí)吧

不廢話了,直接給大家貼代碼了。

class term { 
  String str; 
  int id;  
  public term(String str, int id) { 
    this.str = str; 
    this.id = id; 
  } 
  public String toString() { 
    return str+" "+id; 
  } 
} 
class sterm implements Comparable{ 
  String str; 
  int id; 
  public sterm(String str, int id) { 
    this.str = str; 
    this.id = id; 
  } 
  public int compareTo(Object o) { 
    return ((sterm)o).id - id; 
  } 
  public String toString() { 
    return str+" "+id; 
  } 
} 
//method1: explicit implements Comparator 
class termComparator implements Comparator { 
  public int compare (Object o1, Object o2) { 
    return ((term)o1).id - ((term)o2).id; 
  } 
} 
public class t1 { 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
//   ArrayList<Integer> arr = new ArrayList<Integer>( Arrays.asList(3,1,3,7,8,0)); 
//    
//   Collections.sort(arr, new Comparator(){ 
//      
//     public int compare(Object o1, Object o2){ 
//       return new Double((Integer)o1).compareTo(new Double ((Integer)o2)); 
//     } 
//   }); 
    //method1 
    List<term> ls = new ArrayList<term>(); 
    ls.add(new term("a",1)); 
    ls.add(new term("b",5)); 
    ls.add(new term("c",2)); 
    ls.add(new term("d",2)); 
    ls.add(new term("e",3)); 
    ls.add(new term("f",0)); 
    Collections.sort(ls, new termComparator()); 
    System.out.println(ls);//[f 0, a 1, c 2, d 2, e 3, b 5] 
    //method2: anonymous implements 
    Collections.sort(ls, new Comparator(){ 
      public int compare(Object o1, Object o2){ 
        return ((term)o2).id - ((term)o1).id; 
      } 
    }); 
    System.out.println(ls);//[b 5, e 3, c 2, d 2, a 1, f 0] 
    //method3:instantiate a Comparator template 
    Comparator<term> termCmp = new Comparator<term>() { 
      public int compare(term t1, term t2) { 
        return t1.id - t2.id; 
      } 
    }; 
    Collections.sort(ls, termCmp); 
    System.out.println(ls);//[f 0, a 1, c 2, d 2, e 3, b 5] 
    //method4:element implements Comparable 
    List<sterm> lss = new ArrayList<sterm>(); 
    lss.add(new sterm("a",1)); 
    lss.add(new sterm("b",5)); 
    lss.add(new sterm("c",2)); 
    lss.add(new sterm("d",2)); 
    lss.add(new sterm("e",3)); 
    lss.add(new sterm("f",0)); 
    Collections.sort(lss); 
    System.out.println(lss);//[b 5, e 3, c 2, d 2, a 1, f 0] 
  } 
} 

PrioriyQueue的用法和上述的排序類似,有三種方法:

class WordFreq implements Comparable{ 
    public String wd; 
    public int freq; 
    public WordFreq(String wd, int freq) { 
      this.wd = wd; 
      this.freq = freq; 
    } 
    public int compareTo(Object o) { 
      return ((WordFreq)o).freq - freq; 
    } 
    public String toString() { 
      return wd+" "+freq; 
    } 
  } 
public class testt { 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    PriorityQueue<WordFreq> pq = new PriorityQueue<WordFreq>(); 
    pq.offer(new WordFreq("aaa", 3)); 
    pq.offer(new WordFreq("bbb", 4)); 
    pq.offer(new WordFreq("ccc",1)); 
    while(pq.peek() != null) { 
      System.out.println(pq.poll()); 
    }//從大到小輸出 
  } 
} 

注意,

for (WordFreq wf : pq) {
System.out.println(wf);
}

并不保證遍歷的有序

如果List<String> ls 進(jìn)行排序的話,不需要寫Comparator, 因?yàn)镾tring本身有compareTo的實(shí)現(xiàn)。

相關(guān)文章

  • 解決子線程中獲取不到HttpServletRequest對(duì)象的問(wèn)題

    解決子線程中獲取不到HttpServletRequest對(duì)象的問(wèn)題

    這篇文章主要介紹了解決子線程中獲取不到HttpServletRequest對(duì)象的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入

    Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入

    這篇文章主要介紹了Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • SpringBoot默認(rèn)配置的具體使用

    SpringBoot默認(rèn)配置的具體使用

    本文主要介紹了SpringBoot默認(rèn)配置的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • SpringAop中的Advice通知實(shí)例

    SpringAop中的Advice通知實(shí)例

    這篇文章主要介紹了SpringAop中的Advice通知詳解,Spring的AOP功能中一個(gè)關(guān)鍵概念是通知Advice與切點(diǎn)Pointcut表達(dá)式相關(guān)聯(lián)在特定節(jié)點(diǎn)織入一些邏輯,Spring提供了五種類型的通知,需要的朋友可以參考下
    2023-09-09
  • 解決Unable to start embedded container SpringBoot啟動(dòng)報(bào)錯(cuò)問(wèn)題

    解決Unable to start embedded container&nbs

    這篇文章主要介紹了解決Unable to start embedded container SpringBoot啟動(dòng)報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 關(guān)于Redis的緩存穿透問(wèn)題

    關(guān)于Redis的緩存穿透問(wèn)題

    這篇文章主要介紹了關(guān)于Redis的緩存穿透問(wèn)題,緩存穿透是指客戶端請(qǐng)求的數(shù)據(jù)在緩存中和數(shù)據(jù)庫(kù)中都不存在,這樣緩存永遠(yuǎn)不會(huì)生效,這些請(qǐng)求都會(huì)打到數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2023-08-08
  • Java讀寫txt文件代碼實(shí)例

    Java讀寫txt文件代碼實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java讀寫txt文件的相關(guān)資料,近期處理的數(shù)據(jù)規(guī)模比較大,正好又是統(tǒng)計(jì)合并的事情,想著借助excel就可以完成了,然后就了解了下java讀取excel的事情,需要的朋友可以參考下
    2023-09-09
  • IDEA讓包分層顯示的實(shí)現(xiàn)方式

    IDEA讓包分層顯示的實(shí)現(xiàn)方式

    這篇文章主要介紹了IDEA讓包分層顯示的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 詳解Spring FactoryBean靈活創(chuàng)建復(fù)雜對(duì)象的秘密武器

    詳解Spring FactoryBean靈活創(chuàng)建復(fù)雜對(duì)象的秘密武器

    FactoryBean是Spring框架中用于創(chuàng)建復(fù)雜Bean的接口,通過(guò)編程方式控制Bean的創(chuàng)建過(guò)程,它允許開發(fā)者自定義Bean的創(chuàng)建邏輯,適用于集成第三方庫(kù)、延遲初始化、動(dòng)態(tài)代理和統(tǒng)一管理資源等場(chǎng)景,本文介紹Spring FactoryBean創(chuàng)建復(fù)雜對(duì)象的相關(guān)操作,感興趣的朋友一起看看吧
    2025-02-02
  • Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)

    Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)

    這篇文章主要介紹了Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論

涡阳县| 沙坪坝区| 泰来县| 化隆| 宣汉县| 迁西县| 汉中市| 庆安县| 岗巴县| 台前县| 丰都县| 宁化县| 邢台市| 略阳县| 高青县| 泰宁县| 宝丰县| 林西县| 盐边县| 星子县| 镇宁| 肇庆市| 庆元县| 德江县| 临桂县| 富顺县| 兰西县| 重庆市| 溆浦县| 文安县| 华坪县| 沛县| 清水县| 宜城市| 西安市| 光山县| 鄯善县| 通州市| 周至县| 馆陶县| 大余县|