不废话了 , 直接给大家贴代码了。
Класс термин {String Str; int id; Общедоступный термин (String 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: явное реализует компаратор класса Termparator реализует компаратор {public int compare (Object O1, Object O2) {return ((term) o1) .id - ((термин) O2) .id; }} открытый класс T1 { / ** * @param args * / public static void main (string [] args) {// todo автоматически сгенерированный метод // arraylist <Integer> arr = new ArrayList <Integer> (массивы. Aslist (3,1,3,7,8,0)); // // collections.sort (arr, new Comparator () {// // public int compare (Object o1, obj O2)); // method1 List <mer> ls = new ArrayList <merm> (); 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, новый термин ()); System.out.println (ls); // [f 0, a 1, c 2, d 2, e 3, b 5] // method2: анонимные реализации collections.sort (ls, new Comporator () {public int compare (Объект O1, объект O2) {return ((term) O2) .id - ((термин) O1) .id; System.out.println (ls); // [b 5, e 3, c 2, d 2, a 1, f 0] // method3: экземпляры компаратора шаблона компаратора <термин> termcmp = new Comporator <термин> ( ) {public int compare (термин 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 (новый sterm ("a", 1)); lss.add (новый sterm ("b", 5)); lss.add (новый sterm ("c", 2)); LSS.Add (New Sterm ("D", 2)); lss.add (новый sterm ("e", 3)); lss.add (новый sterm ("f", 0)); Collections.Sort (LSS); System.out.println (lss); // [b 5, e 3, c 2, d 2, a 1, f 0]}}}}}Приоритет 的用法和上述的排序类似 , :
класс WordFreq реализует сопоставимо {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 Автогенерированный метод приоритет приоритет 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 进行排序的话 , 不需要写 Кораптор, 因为 строка 本身有 сравнение 的实现。