java arrays.sort

作者:原创时间:2022-03-24
文档

java arrays.sort是什么,让我们一起了解一下?

Arrays.sort是指sort(byte[] a)和sort(long[] a)两种排序方法,中文叫数组名,使用这两种方法可以对数字在指定的范围内排序。但在java.util这个包里面,用到的时候需要先将它导入。

Java的Arrays类中的sort()方法,该方法是Arrays类的静态方法,需要对数组进行排序。

其实sort()的参数有好几种,那么最常用的是哪一种?

即对一个数组的所有元素进行排序,并且是按从小到大的顺序。示例如下:

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

运行结果如下:

0 1 2 3 4 5 6 7 8 9

另外我们也经常用到的是Arrays.sort(int[] a, int fromIndex, int toIndex),这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序哦!

还有public static void sort(T[] a,int fromIndex, int toIndex,  Comparator c),但是操作时会发现,排列顺序只能是从小到大,如果我们要从大到小,就要使用另外一种方式,这里牵扯到了Java里面的泛型。

示例如下:

  1. 1 package test;
    2
    3 import java.util.Arrays;
    4 import java.util.Comparator;
    5
    6 public class Main {
    7     public static void main(String[] args) {
    8         //注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
    9         //而要使用它们对应的类
    10         Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
    11         //定义一个自定义类MyComparator的对象
    12         Comparator cmp = new MyComparator();
    13         Arrays.sort(a, cmp);
    14         for(int i = 0; i < a.length; i ++) {
    15             System.out.print(a[i] + " ");
    16         }
    17     }
    18 }
    19 //Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口
    20 //而不是extends Comparator
    21 class MyComparator implements Comparator{
    22     @Override
    23     public int compare(Integer o1, Integer o2) {
    24         //如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值,
    25         //这样颠倒一下,就可以实现反向排序了
    26         if(o1 < o2) {
    27             return 1;
    28         }else if(o1 > o2) {
    29             return -1;
    30         }else {
    31             return 0;
    32         }
    33     }
    34    
    35 }

其实本质还是没有太大区别的,就是多了一个Comparator类型的参数而已。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java ascii java asmx java aspectj java aspose java assembly java async win10专业版和企业版的区别 java bacnet java barrier java base64 java base64decoder java bean 手机充电时可以玩手机吗 手机充电发热发烫是什么原因 java beanutils java benchmark java bigdecimal excel表格怎么合并单元格 java binary java binder java args java arctan java arccos java arcsin java archive java apriori java application java append 苹果13蓝牙搜索不到设备怎么办 java apns java ant java annotation java android iphone呼叫失败是什么原因 java algorithm ipad2是哪年的 java akka java aggregation java aes加密 java advice