欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java對ArrayList排序代碼示例

 更新時間:2015年11月13日 11:46:31   作者:sunmenggmail  
本文通過代碼示例給大家介紹java對arraylist排序,代碼簡潔易懂,感興趣的朋友一起學習吧

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

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 進行排序的話,不需要寫Comparator, 因為String本身有compareTo的實現(xiàn)。

相關文章

  • Spring多線程通過@Scheduled實現(xiàn)定時任務

    Spring多線程通過@Scheduled實現(xiàn)定時任務

    這篇文章主要介紹了Spring多線程通過@Scheduled實現(xiàn)定時任務,@Scheduled?定時任務調(diào)度注解,是spring定時任務中最重要的,下文關于其具體介紹,需要的小伙伴可以參考一下
    2022-05-05
  • java 使用poi 導入Excel數(shù)據(jù)到數(shù)據(jù)庫的步驟

    java 使用poi 導入Excel數(shù)據(jù)到數(shù)據(jù)庫的步驟

    這篇文章主要介紹了java 使用poi 導入Excel 數(shù)據(jù)到數(shù)據(jù)庫的步驟,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Java集合去重導致的線上問題

    Java集合去重導致的線上問題

    這篇文章主要介紹了Java集合去重導致的線上問題,根據(jù)主題提出Set是怎樣保證數(shù)據(jù)的唯一性的,為什么兩種去重方式性能差距這么大的問題,下文解決思路需要的小伙伴可以參考一下
    2022-04-04
  • 利用Java理解sql的語法(實例講解)

    利用Java理解sql的語法(實例講解)

    下面小編就為大家分享一篇利用Java理解sql的語法(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Java?輪詢鎖使用時遇到問題解決方案

    Java?輪詢鎖使用時遇到問題解決方案

    這篇文章主要介紹了Java?輪詢鎖使用時遇到問題解決方案,當我們遇到死鎖之后,除了可以手動重啟程序解決之外,還可以考慮使用順序鎖和輪詢鎖,但是過程也會遇到一些問題,接下來我們一起進入下面文章了解解決方案,需要的小伙伴可以參考一下
    2022-05-05
  • java中for和forEach的速度比較實例Demo

    java中for和forEach的速度比較實例Demo

    for循環(huán)中的循環(huán)條件中的變量只求一次值,而foreach語句是java5新增,在遍歷數(shù)組、集合的時候,foreach擁有不錯的性能,這篇文章主要給大家介紹了關于java中for和forEach速度比較的相關資料,需要的朋友可以參考下
    2021-08-08
  • 自定義注解+Spel實現(xiàn)分布式鎖方式

    自定義注解+Spel實現(xiàn)分布式鎖方式

    這篇文章主要介紹了自定義注解+Spel實現(xiàn)分布式鎖方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java實戰(zhàn)項目 醫(yī)院預約掛號系統(tǒng)

    Java實戰(zhàn)項目 醫(yī)院預約掛號系統(tǒng)

    本文是一個Java語言編寫的實戰(zhàn)項目,是一個醫(yī)院預約掛號系統(tǒng),主要用到了jdbc+jsp+mysql+ajax等技術,技術含量比較高,感興趣的童鞋跟著小編往下看吧
    2021-09-09
  • Java套接字(Socket)網(wǎng)絡編程入門

    Java套接字(Socket)網(wǎng)絡編程入門

    這篇文章主要介紹了Java套接字(Socket)網(wǎng)絡編程入門,Socket可以理解為是對TCP/IP協(xié)議的抽象,需要的朋友可以參考下
    2015-10-10
  • Java 字符串轉(zhuǎn)float運算 float轉(zhuǎn)字符串的方法

    Java 字符串轉(zhuǎn)float運算 float轉(zhuǎn)字符串的方法

    今天小編就為大家分享一篇Java 字符串轉(zhuǎn)float運算 float轉(zhuǎn)字符串的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論