java.util.Arrays.(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)%uA0根据诱导由指定比较器的顺序方法对指定对象数组的指定范围。要排序的范围从索引fromIndex(包括)到索引toIndex,排斥。 (如果fromIndex== toIndex,则排序范围为空。)范围内的所有元素都必须是通过指定比较器相互比较(也就是说,c.compare(e1, e2)不得抛出ClassCastException任何元素e1和e2的范围内)。
此排序被保证是稳定的:相等的元素不会被重新排序的排序结果。
该排序算法是修改后的归并排序(其中,如果低子列表中的最高元素小于高子列表中的最低元素的合并省略)。此算法提供可保证n * log(n)性能。
声明
以下是java.util.Arrays.sort()方法的声明
public static <T> void sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
参数
-
a%uA0-- 这是要排序的数组。
-
fromIndex%uA0-- 第一个元素的索引(包括)进行排序
-
toIndex%uA0-- 最后一个元素的索引(不包括)进行排序
-
c%uA0-- 比较以确定该数组的顺序。 null值指示该元素的自然顺序应该被使用。
返回值
此方法不返回任何值。
异常
-
ClassCastException%uA0-- 如果数组包含不可相互比较使用指定的比较元素。
-
IllegalArgumentException%uA0-- 如果%uA0fromIndex > toIndex
-
ArrayIndexOutOfBoundsException%uA0-- 如果%uA0fromIndex < 0 或%uA0toIndex > a.length
例子
下面的示例演示java.util.Arrays.sort()方法的用法。
package com.yiibai import java.util.Arrays import java.util.Collections import java.util.Comparator public class ArrayDemo { public static void main(String[] args) { // initializing unsorted short array Short sArr[] = new Short[]{3, 13, 1, 9, 21} // let us print all the elements available in list for (short number : sArr) { System.out.println("Number = " + number) } // create a comparator Comparator<Short> comp = Collections.reverseOrder() // sorting array with reverse order using comparator from 0 to 2 Arrays.sort(sArr, 0, 2, comp) // let us print all the elements available in list System.out.println("short array with some sorted values(1 to 4) is:") for (short number : sArr) { System.out.println("Number = " + number) } } }
让我们来编译和运行上面的程序,这将产生以下结果:
Number = 3 Number = 13 Number = 1 Number = 9 Number = 21 short array with some sorted values(1 to 4) is: Number = 13 Number = 3 Number = 1 Number = 9 Number = 21