国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java對ArrayList排序代碼示例

2019-11-26 14:51:05
字體:
來源:轉載
供稿:網友

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

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的實現。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牙克石市| 松潘县| 岳普湖县| 太湖县| 盐山县| 集安市| 花莲市| 德令哈市| 平乐县| 钦州市| 香格里拉县| 怀化市| 平安县| 奉贤区| 南陵县| 民权县| 霞浦县| 丰城市| 固始县| 改则县| 永仁县| 大方县| 漳浦县| 华池县| 武冈市| 陵川县| 延川县| 石门县| 遵义县| 陇西县| 元氏县| 高安市| 巴东县| 龙口市| 宁远县| 双城市| 中方县| 呈贡县| 德庆县| 深水埗区| 都江堰市|