不废话了 , 直接给大家贴代码了。
مصطلح الفئة {String str ؛ int id ؛ المصطلح العام (String str ، int id) {this.str = str ؛ this.id = id ؛ } السلسلة العامة toString () {return str+""+id ؛ }} class sterm تنفذ قابلة للمقارنة {String str ؛ int id ؛ sterm public (String str ، int id) {this.str = str ؛ this.id = id ؛ } public int compareto (object o) {return ((sterm) o) .id - id ؛ } السلسلة العامة toString () {return str+""+id ؛ }} // method1: صريح الأدوات المقارنة فئة المقارنة تطرح Distructions {public int care (object o1 ، object o2) {return ((term) o1) .id - ((term) o2) .id ؛ }} الفئة العامة t1 { / ** * param args * / public static void main (string [] args) {// todo method method method cub // arraylist <integer> arr = new ArrayList <integer> (المصفوفات. 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 (مصطلح جديد ("A" ، 1)) ؛ Ls.Add (مصطلح جديد ("B" ، 5)) ؛ Ls.Add (مصطلح جديد ("C" ، 2)) ؛ Ls.Add (مصطلح جديد ("D" ، 2)) ؛ Ls.Add (مصطلح جديد ("E" ، 3)) ؛ Ls.Add (مصطلح جديد ("F" ، 0)) ؛ collections.sort (LS ، New TermComparator ()) ؛ system.out.println (ls) ؛ // [f 0 ، a 1 ، c 2 ، d 2 ، e 3 ، b 5] (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 applate paratator <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 يطبق قائمة قابلة للمقارنة <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]}}preproniyqueue 的用法和上述的排序类似 , :
الفئة WordFreq تنفذ قابلة للمقارنة {السلسلة العامة wd ؛ التكرار العام ؛ public wordfreq (String wd ، int freq) {this.wd = wd ؛ this.freq = freq ؛ } public int compareto (object o) {return ((wordfreq) o) .freq - freq ؛ } السلسلة العامة toString () {return wd+""+freq ؛ }} الفئة العامة testt {public static void main (string [] args) {// todo method method method tuto priorityequeue <wordfreq> pq = new PriorityQueue <WordFreq> () ؛ PQ.Offer (New WordFreq ("AAA" ، 3)) ؛ PQ.Offer (New WordFreq ("BBB" ، 4)) ؛ PQ.Offer (New WordFreq ("CCC" ، 1)) ؛ بينما (pq.peek ()! = null) {system.out.println (pq.poll ()) ؛ } // 从大到小输出}}注意 ,
لـ (wordfreq wf: pq) {system.out.println (wf) ؛}并不保证遍历的有序
如果 قائمة <Tring> ls 进行排序的话 , 不需要写 المقارنة ، 因为 سلسلة 本身有 المقارنة 的实现。