不廢話了,直接給大家貼代碼了。,直接給大家貼代碼了。
班級{字符串str; int id;公共術語(String str,int ID){this.str = str; this.id = id; } public String toString(){return str+“”+id; }} class sterm insterm instable Abotable {string str; int id; public sterm(字符串str,int id){this.str = str; this.id = id; } public int comporto(object o){return((sterm)o).id -id; } public String toString(){return str+“”+id; }} //方法1:顯式實現了比較類TermComparator實現了比較器{public int comparare(object o1,object o2){return((term)o1).id - id-((term)o2 o2 o2 o2 o2; id; }}} public類T1 { / ** * @param args * / public static void main(string [] args){// todo auto-generated方法stub // arraylist <integer> arr = arr = arr = new arraylist < integer>(arrays。 Aslist(3,1,3,7,8,0)); // // collections.sort(arr,new comparator(){// // public int comparare(對象O1,對象O2){//返回新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] //方法2:匿名collections.sort.sort(ls,new comparator(),public int int actarare (Object O1,Object O2){返回((術語)O2).id - ((term)O1).id;}}); system.out.println(ls); // [b 5,e 3,c 2,d 2,a 1,f 0] // method3:實例化比較器模板比較器<term> termcmp = termcmp = new termcmp = new termcmp = new term <term>( ){public int compare(t1,tim t2){返回t1.id -t2.id; }}; collections.Sort(LS,TERMCMP); system.out.println(ls); // [f 0,a 1,c 2,d 2,e 3,e 3,b 5] // method4:element instrument instrument listable list <sterm> lss = new arraylist < sterm <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的用法和上述的排序類似,有三種方法::
類WordFreq實現可比較{public String wd;公共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(){返回WD+“”+FREQ; }} public class testt {public static void main(string [] args){// todo auto-generated方法stub Priortityqueue <WordFreq> pq = pq = new PriortityQueue <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);}並不保證遍歷的有序
如果列表<string> ls進行排序的話,不需要寫比較器,因為字符串本身有比較的實現。