集合框架-工具类-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 }
CollectionsDemo
 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 }
ComparatorByLength

 

posted @ 2021-10-25 22:35  doremi429  阅读(26)  评论(0编辑  收藏  举报