Java泛型——对一个对象数组进行排序

public class GenericSort {
     
    public static void show() {
        Integer[] intArray = {new Integer(2),new Integer(4),new Integer(3)};
        Double[] doubleArray = {new Double(2.5),new Double(6.4),new Double(3.3)};
        Character[] charArray = {new Character('a'),new Character('q'),new Character('c')};
        String[] stringArray = {"liu","lu","hhh"};
     
        sort(intArray);
        sort(doubleArray);
        sort(charArray);
        sort(stringArray);
         
        System.out.print("sorted integer objects: ");
        printList(intArray);
        System.out.print("sorted Double objects:  ");
        printList(doubleArray);
        System.out.print("sorted char objects:   ");
        printList(charArray);
        System.out.print("sorted string objects:  ");
        printList(stringArray);
         
    }
     
    public static <E extends Comparable<E>> void sort(E[] list) {  //可以对任何对象类型的数组进行排序
        E currentMin;
        int currentMinIndex;
         
        for(int i = 0; i < list.length -1 ;i++) {
            currentMin = list[i];
            currentMinIndex = i;
            for (int j = i+1 ; j < list.length; j++) {
                if(currentMin.compareTo(list[j])>0) {
                    currentMin = list[j];
                    currentMinIndex = j;
                }
            }
             
            if(currentMinIndex != i) {
                list[currentMinIndex] = list[i];
                list[i] = currentMin;
            }
        }
    }
     
    public static void printList(Object[] list) {
        for(int i = 0; i< list.length ; i++)
            System.out.print(list[i]+" ");
        System.out.println();
    }
}

  

posted on 2021-01-18 00:43  童话Bluebells  阅读(347)  评论(1编辑  收藏  举报