手机
当前位置:查字典教程网 >编程开发 >Java >java对ArrayList排序代码示例
java对ArrayList排序代码示例
摘要:不废话了,直接给大家贴代码了。classterm{Stringstr;intid;publicterm(Stringstr,intid){t...

不废话了,直接给大家贴代码了。

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的实现。

【java对ArrayList排序代码示例】相关文章:

Java实现堆排序(Heapsort)实例代码

java冒泡排序算法代码

java反射机制示例详解

归并排序的实现代码与思路

java登录验证码实现代码

java生成图片验证码示例程序

java使用回溯法求解数独示例

用Java实现希尔排序的示例

java加密解密示例分享

Java实现几种常见排序算法代码

精品推荐
分类导航