一、sort函数的介绍
sort函数是Java提供的排序函数之一,可以对数组进行升序排列,也可以对数组进行降序排列。在对数组进行排序时,sort函数会对数组进行原地排序,即对原始数组进行操作,不会创建新的数组。
sort函数有几种重载形式,可以对不同类型的数组进行排序,同时也可以指定排序的起始和结束位置。其中最常用的形式是针对基本类型数组的排序,如下所示:
public static void sort(int[] a)
以上是sort函数的最基本形式,它会对整型数组a进行升序排列。如果要进行降序排列,则可以使用以下代码:
Arrays.sort(a);
for(int i = 0; i < a.length / 2; i++) {
int temp = a[i];
a[i] = a[a.length - i - 1];
a[a.length - i - 1] = temp;
}
以上代码先调用sort函数对数组a进行升序排列,然后通过交换数组元素的方式将数组变成降序排列。
二、基本类型数组的降序排列
下面是对基本类型数组进行降序排列的示例代码:
import java.util.Arrays;
public class DescendingSort {
public static void main(String[] args) {
int[] a = {1, 5, 3, 8, 2};
Arrays.sort(a);
for(int i = 0; i < a.length / 2; i++) {
int temp = a[i];
a[i] = a[a.length - i - 1];
a[a.length - i - 1] = temp;
}
for(int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
以上代码先对数组进行升序排列,然后通过交换数组元素的方式将数组变成降序排列。输出结果为:
8 5 3 2 1
三、引用类型数组的降序排列
如果要对引用类型数组进行降序排列,需要实现一个Comparator接口,并将其传递给sort函数。以下是对字符串数组进行降序排列的示例代码:
import java.util.Arrays;
import java.util.Comparator;
public class DescendingSort {
public static void main(String[] args) {
String[] a = {"apple", "banana", "orange", "pear"};
Arrays.sort(a, new Comparator<String>() {
public int compare(String s1, String s2) {
return s2.compareTo(s1);
}
});
for(int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
以上代码中,通过实现Comparator接口的compare方法,将排序方式改为降序排列。输出结果为:
pear orange banana apple
四、总结
本文介绍了Java数组的sort函数,包括对基本类型数组和引用类型数组的降序排列示例。在进行降序排列时,可以先进行升序排列,然后通过交换数组元素的方式将数组变成降序排列,也可以通过实现Comparator接口,将排序方式改为降序排列。