java 通过重写Comparator来重新界定sort方法的比较规则
阅读原文时间:2021年04月20日阅读:1

这里我用的是list,所以排序方法需要用的是Collections.sort()方法
如果大家操作的是数组,那么也有对应的方法:Arrays.sort()方法

  package Collections;

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Random;


    public class CollectionsTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        List<Integer> integeList = new ArrayList<Integer>();
        Random random = new Random();
        Integer k;
        /*生成100个不重复且大于100的随机数*/
        for(int i=0;i<10;i++)
        {
            do
            {
                k =random.nextInt(100);
            }while(integeList.contains(k));
            integeList.add(k);
            System.out.println("成功添加整数"+k);

        }
        System.out.println("排序前");
        Iterator<Integer> it = integeList.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next());
        }
        //按照默认的sort方法进行排序
        Collections.sort(integeList);

        System.out.println("排序按照默认升序后");

         for (Integer s : integeList) {
             System.out.print(s+" ");

        }
         System.out.println("");
        System.out.println("排序按照自定义compartor降序后");

            Collections.sort(integeList, new Comparator<Integer>() {

                @Override
                public int compare(Integer a, Integer b) {
                    // TODO Auto-generated method stub
                    return b-a;
                }

            });

            for (Integer s : integeList) {
                 System.out.print(s+" ");
        }



    }

    }