java.util.Arrays.sort()方法用于按照诱导的顺序对指定的对象数组进行排序由指定的比较器。数组中的所有元素必须通过指定的比较器相互比较(即,c.compare(e1, e2) 不得对数组中的任何元素 e1 和 e2 抛出 ClassCastException)。
这种排序保证稳定:相等的元素不会因排序而重新排序。
语法
public static <T> void sort(T[] a,
Comparator<? super T> c)
- 1
- 2
这里,T 是数组中元素的类型。
>参数
a | 指定要排序的数组。 |
c | 指定比较器以确定数组的顺序。 null 值表示应使用元素的自然排序。 |
返回值
void 类型。
Exception
- 如果数组包含使用指定比较器无法相互比较的元素,则抛出 ClassCastException。
- 抛出 IllegalArgumentException ,(可选)如果发现比较器违反了比较器契约。
示例:
在下面的示例中,java.util.Arrays.sort() 方法用于对指定的对象数组进行排序。
import java.util.*;
public class MyClass {
public static void main(String[] args) {
//创建一个未排序的整数数组
Integer Arr[] = {10, 2, -3, 35, 56};
//排序前打印数组
System.out.print("Arr contains:");
for(Integer i: Arr)
System.out.print(" " + i);
//创建一个用于逆序排序的比较器
Comparator<Integer> comp = Comparator.reverseOrder();
//对数组进行排序
Arrays.sort(Arr, comp);
//打印排序后的数组
System.out.print("\nArr contains:");
for(Integer i: Arr)
System.out.print(" " + i);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
上述代码的输出将是:
Arr contains: 10 2 -3 35 56
Arr contains: 56 35 10 2 -3
- 1
- 2