不废话了, 直接给大家贴代码了。
클래스 용어 {문자열 str; int id; 공개 용어 (문자열 str, int id) {this.str = str; this.id = id; } public String toString () {return str+""+id; }} 클래스 sterm은 비슷한 {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 : 명시 적 구현 비교기 클래스 Comparator는 비교기 {public int compor (object o1, object o2) {return (term) o1) .id - ((용어) o2) .id; }} public class t1 { / ** * @param args * / public static void main (string [] args) {// todo auto-renerated method stub // 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 ((정수)) o2)); //} //}); // method1 list <ERM> ls = new ArrayList <erferrayList <erferment> (); 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] // method2 : 익명 구현 collections.sort (ls, new comparator () {public int compacer (Object O1, Object O2) {return ((용어) O2) .id- ((용어) O1) .id); System.out.println (ls); // [b 5, e 3, c 2, d 2, a 1, f 0] // method3 : 비교기 템플릿 비교 <ERMER> termcmp = new Comparator <erm> ( ) {public int 비교 (T1, 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 : 요소는 비슷한 목록 <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]}}Piboriyqueue ue, 有三种方法 :
Class WordFreq는 비슷한 {public String wd; 공개 int freq; public wordfreq (문자열 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 자동 생성 메소드 스텁 우선 퀘이트 <WordFreq> pq = 새로운 우선 Quiprivyue <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 进行排序的话 进行排序的话, 不需要写 비교기, 因为 문자열 本身有 本身有 비교 的实现。