集合框架-工具类-Collections-排序
1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.List; 7 8 import cn.itcast.p2.comparator.ComparatorByLength; 9 10 public class CollectionsDemo { 11 12 public static void main(String[] args) { 13 // TODO Auto-generated method stub 14 /* 15 * Collections:是集合框架的工具类。 16 * 里面的方法都是静态的。 17 */ 18 demo_1(); 19 20 } 21 22 public static void demo_1() { 23 24 List<String> list = new ArrayList<String>(); 25 26 list.add("abcde"); 27 list.add("cba"); 28 list.add("aa"); 29 list.add("zzz"); 30 list.add("nbaa"); 31 System.out.println(list); 32 33 34 35 //对list集合进行指定顺序的排序。 36 // Collections.sort(list); 37 // mySort(list); 38 // mySort(list, new ComparatorByLength()); 39 System.out.println(list); 40 41 42 } 43 //下面方法相当于Collections.sort(list,new ComparatorByLength); 44 /* 45 public static <T> void mySort(List<T> list,Comparator<? super T> comp) { 46 47 for (int i = 0; i < list.size()-1; i++) { 48 for (int j = i+1; j < list.size(); j++) { 49 if (comp.compare(list.get(i),list.get(j)) >0) { 50 // T temp = list.get(i); 51 // list.set(i, list.get(j)); 52 // list.set(j, temp); 53 Collections.swap(list, i, j); 54 } 55 } 56 } 57 } 58 //介绍Collections.swap交换方法 59 /* 60 public static <T extends Comparable<? super T>> void mySort(List<T> list) { 61 for (int i = 0; i < list.size()-1; i++) { 62 for (int j = i+1; j < list.size(); j++) { 63 if (list.get(i).compareTo(list.get(j))> 0 ) { 64 // T temp = list.get(i); 65 // list.set(i, list.get(j)); 66 // list.set(j, temp); 67 Collections.swap(list, i, j); 68 } 69 } 70 } 71 }*/ 72 73 //相当于按自然顺序方法升序排列Collections.sort 74 //public static <T extends Comparable<? super T>> void sort(List<T> list) 75 /* 76 public static <T extends Comparable<? super T>> void mySort(List<T> list) { 77 for (int i = 0; i < list.size()-1; i++) { 78 for (int j = i+1; j < list.size(); j++) { 79 if (list.get(i).compareTo(list.get(j))> 0 ) { 80 T temp = list.get(i); 81 list.set(i, list.get(j)); 82 list.set(j, temp); 83 } 84 } 85 } 86 }*/ 87 88 //传入String类型的集合 89 /* public static void mySort(List<String> list) { 90 91 for (int i = 0; i < list.size()-1; i++) { 92 for (int j = i+1; j < list.size(); j++) { 93 if (list.get(i).compareTo(list.get(j))> 0 ) { 94 String temp = list.get(i); 95 list.set(i, list.get(j)); 96 list.set(j, temp); 97 } 98 } 99 } 100 }*/ 101 102 }
1 package cn.itcast.p2.comparator; 2 3 import java.util.Comparator; 4 5 public class ComparatorByLength implements Comparator<String> { 6 7 @Override 8 public int compare(String o1, String o2) { 9 // TODO Auto-generated method stub 10 int temp = o1.length()-o2.length(); 11 12 return temp==0?o1.compareTo(o2):temp; 13 } 14 15 }