java中关于Arrays.sort()的三种用法详解

简介: java中关于Arrays.sort()的三种用法详解

       1、Arrays.sort(int[] a) :

        这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。

代码演示:

       import java.util.Arrays;                                                        
                   public class Main {
                       public static void main(String[] args) {                 
                          int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
                          Arrays.sort(a);
                          for(int i = 0; i < a.length; i ++) {
                         System.out.print(a[i] + " ");
         }
     }
 }
 结果:0 1 2 3 4 5 6 7 8 9 

在这里插入图片描述


       2、Arrays.sort(int[] a, int fromIndex, int toIndex):

          这种形式是对数组部分排序,
          也就是对数组a的下标从fromIndex到toIndex-1的元素排序,
注意:下标为toIndex的元素不参与排序

代码演示:

 import java.util.Arrays;                                                       
        public class Main {                                                                     
        public static void main(String[] args) {         
        int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
        Arrays.sort(a, 0, 3);     //从下标0到下标2进行排序,其他不变                                               
        for(int i = 0; i < a.length; i ++) {
           System.out.print(a[i] + " ");
         }
  }
 }

原数组:9 8 7 2 3 4 1 0 6 5

  结果:7 8 9 2 3 4 1 0 6 5 

在这里插入图片描述


       3、public static void sort( T[] a, int fromIndex, int toIndex, Comparator<? super T> c):

     上面有一个拘束,就是排列顺序只能是从小到大
     如果我们要从大到小,就要使用这种方式

代码演示:

        import java.util.Arrays;
        import java.util.Comparator
          public class Main {
            public static void main(String[] args) {
               //注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
               //而要使用它们对应的包装类
          Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
          //定义一个自定义类MyComparator的对象
           Comparator cmp = new MyComparator();
           Arrays.sort(a, cmp);
            for(int i = 0; i < a.length; i ++) {
             System.out.print(a[i] + " ");
         }
     }
}


---------------------------------------------------------------------


//Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口
    //而不是extends Comparator

       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;
         }
     }
      }

总结:

Arrays.sort()的用法         
 1.用来排序,从小到大
 2.部分排序      
 3.用来排序,从大到小,需要定义接口
 4.也可以用来排序字符串数组,排序是按照a到z的字母顺序

作者:KJ.JK

本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

目录
相关文章
|
17天前
|
Java
Java中的抽象类:深入了解抽象类的概念和用法
Java中的抽象类是一种不能实例化的特殊类,常作为其他类的父类模板,定义子类行为和属性。抽象类包含抽象方法(无实现)和非抽象方法。定义抽象类用`abstract`关键字,子类继承并实现抽象方法。抽象类适用于定义通用模板、复用代码和强制子类实现特定方法。优点是提供抽象模板和代码复用,缺点是限制继承灵活性和增加类复杂性。与接口相比,抽象类可包含成员变量和单继承。使用时注意设计合理的抽象类结构,谨慎使用抽象方法,并遵循命名规范。抽象类是提高代码质量的重要工具。
31 1
|
1月前
|
前端开发 Java
java中的Queue队列的用法
java中的Queue队列的用法
19 1
|
1月前
|
XML Java 编译器
java aspectjrt AOP 用法
java aspectjrt AOP 用法
21 0
|
4月前
|
Java
【零基础学Java】—final关键字与四种用法(二十九)
【零基础学Java】—final关键字与四种用法(二十九)
|
4月前
|
Java
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
|
6天前
|
JSON Java 数据格式
Java QueryWrapper基本用法
Java QueryWrapper基本用法
13 2
|
1月前
|
安全 Java 开发者
Java 8 `Optional` 类的用法和优势
【2月更文挑战第15天】
13 0
|
2月前
|
Java
|
2月前
|
存储 传感器 机器学习/深度学习
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
45 0