• 数组排序(转载)和List类型排序


    /**
     * @Test
     */
    package arrayssort;
    
    /**
     * @author wangjian2
     * 创建日期  2012-8-29
     * version 1.0
     * description 请用一句话描述该类
     */
    import java.util.Arrays;
    import java.util.Comparator;
    
    public class ArraySortDemo {
        /** 
        * 整数型数组排序
        */
        public void sortIntArray() {
            int[] arrayToSort = new int[] {48, 5, 89, 80, 81, 23, 45, 16, 2};
            System.out.println(" 整数型数组排序,排序前: ");
            for (int i = 0; i < arrayToSort.length; i++) {
                System.out.print(arrayToSort[i] + " , ");
            }
            //  调用数组的静态排序方法sort 
            Arrays.sort(arrayToSort);
            System.out.println();
            System.out.println(" 排序后: ");
            for (int i = 0; i < arrayToSort.length; i++) {
                System.out.print(arrayToSort[i] + " , ");
            }
        }
    
        /** 
        * 字符型数组排序demo
        */
        public void sortStringArray() {
            String[] arrayToSort = new String[] {" Oscar ", " Charlie ", " Ryan ", " Adam ", " David ", " aff ", " Aff "};
            System.out.println();
            System.out.println(" 字符型数组排序,排序前: ");
            for (int i = 0; i < arrayToSort.length; i++) {
                System.out.print(arrayToSort[i] + " , ");
            }
            System.out.println();
            System.out.println(" 排序后: ");
            //  调用数组的静态排序方法sort 
            Arrays.sort(arrayToSort);
    
            for (int i = 0; i < arrayToSort.length; i++) {
                System.out.print(arrayToSort[i] + " , ");
            }
        }
    
        /** 
        * 对象数组排序demo
        */
        public void sortObjectArray() {
            Dog o1 = new Dog(" dog1 ", 1);
            Dog o2 = new Dog(" dog2 ", 4);
            Dog o3 = new Dog(" dog3 ", 5);
            Dog o4 = new Dog(" dog4 ", 2);
            Dog o5 = new Dog(" dog5 ", 3);
            Dog[] dogs = new Dog[] {o1, o2, o3, o4, o5};
            System.out.println();
            System.out.println(" 对象数组排序排序前: ");
            for (int i = 0; i < dogs.length; i++) {
                Dog dog = dogs[i];
                System.out.print(dog.getName() + " [ " + dog.getWeight() + " ], ");
            }
            Arrays.sort(dogs, new ByWeightComparator());
            System.out.println();
            System.out.println(" 排序后: ");
            for (int i = 0; i < dogs.length; i++) {
                Dog dog = dogs[i];
                System.out.print(dog.getName() + " [ " + dog.getWeight() + " ], ");
            }
        }
    
        public static void main(String[] args) {
            ArraySortDemo t = new ArraySortDemo();
            t.sortIntArray();
            t.sortStringArray();
            t.sortObjectArray();
        }
    
        /** 
        * 定义了一个Dog类
        */
        class Dog {
            private String name;
            private int weight;
    
            public Dog(String name, int weight) {
                this.setName(name);
                this.weight = weight;
            }
    
            public int getWeight() {
                return weight;
            }
    
            public void setWeight(int weight) {
                this.weight = weight;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public String getName() {
                return name;
            }
        }
    
        /** 
        * 因为要对对象进行排序,所以要实现java.util.Comparator接口的compare(T o1, T o2)方法,在该方法中自定义排序算法。
        */
        class ByWeightComparator implements Comparator {
            public final int compare(Object pFirst, Object pSecond) {
                int aFirstWeight = ((Dog)pFirst).getWeight();
                int aSecondWeight = ((Dog)pSecond).getWeight();
                int diff = aFirstWeight - aSecondWeight;
                if (diff > 0)
                    return 1;
                if (diff < 0)
                    return -1;
                else
                    return 0;
            }
        }
    }

    如果是List类型排序,则用Collections.sort来排序。

    能否用快速排序来排序数组?

  • 相关阅读:
    TWinHttp之二
    日志池
    TWinHTTP
    TJSONTableObject跨平台解析JSON
    TSQLTableJSON解析JSON
    TDocVariantData解析JSON
    Vue.js常用指令汇总(v-if//v-show//v-else//v-for//v-bind//v-on等)
    VUE -- 十分钟入门 Less
    VUE -- ejs模板的书写
    Go VUE --- vuejs在服务器部署?
  • 原文地址:https://www.cnblogs.com/usual2013blog/p/2683251.html
Copyright © 2020-2023  润新知