zoukankan      html  css  js  c++  java
  • Arrays.sort()

    这里对Arrays.sort的基本用法进行一个总结说明:

    常见形式

    1、Arrays.sort(int[] a);      对数组a进行升序排序

    2、Arrays.sort(int[] a,int fromIndex, int toIndex);    对数组a的部分进行排序,这部分为下标formIdex到toIndex,这里不包括下标为toIndex的元素

    3、Arrays.sort(T[] a,int fromIndex, int toIndex, Comparator<? super T> c); 利用Comparator进行排序

    package allSort;
    
    import java.util.Arrays;
    import java.util.Comparator;
    
    public class sortCompar{
    
        public static void main(String[] args) {
            int[] a = new int[]{2,4,1,6,3,8,7,9};
    
            /*Arrays.sort(int[] a)
            这种形式对数组进行升序排序*/
            Arrays.sort(a);
    
            System.out.println("对数组进行整体排序:");
            for(int i:a){
                System.out.print(i+" ");
            }
            System.out.println();
    
            int[] b = new int[]{2,4,1,6,3,8,7,9};
    
            /*Arrays.sort(int[] a, int fromIndex, int toIndex)
            这种形式是对数组部分排序
            也就是对数组a的下标从fromIndex到toIndex-1的元素排序
            注意:下标为toIndex的元素不参与排序哦!*/
            Arrays.sort(b, 1,5);
    
            System.out.println("对数组下标从1到5排序:");
            for(int i:b){
                System.out.print(i+" ");
            }
            System.out.println();
    
            Integer[] c = new Integer[]{2,4,1,6,3,8,7,9};
            // Arrays.sort(T[] a,int fromIndex, int toIndex,  Comparator<? super T> c)
            Comparator myc = new MyComparator();
            Arrays.sort(c, myc);
            System.out.println("对数组进行整体排序:");
            for(int i:c){
                System.out.print(i+" ");
            }
            System.out.println();
    
        }
    }

    Comparator类的实现:

    package allSort;
    
    import java.util.Comparator;
    
    public class MyComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer o1, Integer o2) {
            // 降序排序
            //如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值,
            //这样颠倒一下,就可以实现反向排序了
            if(o1 < o2) {
                return 1;
            }else if(o1 > o2) {
                return -1;
            }else {
                return 0;
            }
    //        return o2 - o1;  // 降序排序
    //        return o1 - o2;  // 升序排序
        }
    }

    输出:

     利用lambda进行比较

    package allSort;
    
    import java.util.Arrays;
    import java.util.Comparator;
    
    public class sortCompar{
    
        public static void main(String[] args) {
           
            // lambda
            Integer[] d = new Integer[]{2,4,1,6,3,8,7,9};
            Arrays.sort(d, ((o1, o2) -> o1 - o2));
            System.out.println("对数组进行整体升序排序:");
            for(int i:d){
                System.out.print(i+" ");
            }
            System.out.println();
            Arrays.sort(d, ((o1, o2) -> o2 - o1));
            System.out.println("对数组进行整体降序排序:");
            for(int i:d){
                System.out.print(i+" ");
            }
            System.out.println();
           
        }
    }

     在sort里直接new Comparator对象并实现比较方法

    package allSort;
    
    import java.util.Arrays;
    import java.util.Comparator;
    
    public class sortCompar{
    
        public static void main(String[] args) {
            
            // 直接定义Comparator函数形式
            Integer[] e = new Integer[]{2,4,1,6,3,8,7,9};
            // Arrays.sort(T[] a,int fromIndex, int toIndex,  Comparator<? super T> c)
            Arrays.sort(e, new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o1 - o2;
                }
            });
            System.out.println("对数组进行整体升序排序:");
            for(int i:e){
                System.out.print(i+" ");
            }
            System.out.println();
        }
    }

    (比较里  返回正值的情况,则两个值交换)

  • 相关阅读:
    创建一个Django项目
    ubuntu18安装python3, pip3并配置国内源
    DjangoRestFramework实现用户注册
    pycharm打开Django项目,并在浏览器返回HelloWorld
    ubuntu18 安装mysqlclient报错Command "python setup.py egg_info" failed with error code 1 in /tmp/pipbuild8139q6vm/mysqlclient/
    越学习越焦虑? 是时候总结自己的学习方法论了!
    ubuntu18.04 python3安装虚拟环境virtualenv
    (vs2005)使用Log4Net要注意的几个问题。
    (Asp.net,ms sqlserver embbed 2005 edition,windows sharepoint services)安装windows sharepoint service惊魂记
    (asp.net,collabat svn server,bugtrack.net)部署bugtrack.net到服务器上的一点心得
  • 原文地址:https://www.cnblogs.com/dong973711/p/14818889.html
Copyright © 2011-2022 走看看