java的Arrays.sort(int[] a)实现的是由小到大的排序,那么如果要实现由大到小排序怎么办呢?一种方法是用下面的步骤:
1)先通过Arrays.sort(int[] a)对数组a实现由小到大排序;
2)然后创建另外一个同长度的数组b,将数组a的元素从后面往前拷贝到b数组中;
3)通过System.arraycopy将数组b的内容拷贝到数组a中。
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] a = {1, 3, 2, 4};
int[] b = new int[a.length];
Arrays.sort(a); // 将数组a的内容由小到大排序
// 将数组a的内容从后到前拷贝到数组b中
for (int i = 0; i < a.length; i ++) {
b[a.length -1 - i] = a[i];
}
System.arraycopy(b, 0, a, 0, a.length); // 将数组b的内容拷贝到数组a中
System.out.println("content in array a:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + ",");
}
System.out.println();
}
}
输出内容: