一、用Arrays.sort()进行升序排序
public class Array_01 {
public static void main(String[] args) {
int []a = {55, 69, 30, 21};
System.out.println("a:" + Arrays.toString(a));
Arrays.sort(a);
System.out.println("昇順のa:" + Arrays.toString(a));
}
}
运行结果:
a:[55, 69, 30, 21]
昇順のa:[21, 30, 55, 69]
Arrays.sort()方法的描述为"根据元素的自然顺序,将指定的对象数组按升序排序",因此这样进行升序是没有问题的。
二、但是如果想要降序,就不能直接使用Arrays.sort()方法
如果你在不改变int类型的情况下,使用Arrays.sort(a, Collections.reverseOrder());
你会得到报错"the method sort(int[]) in the type arrays is not applicable for the arguments (int[], collections.reverseorder())"
- 把int []a = {55, 69, 30, 21}; 改为 Integer []a = {55, 69, 30, 21};就不报错了。
但接下来要介绍的是另外一种方法
三、在不改变int类型的情况下,通过一次简单的for循环来输出逆序
public class Array_01 {
public static void main(String[] args) {
int []a = {55, 69, 30, 21};
System.out.println("a:" + Arrays.toString(a));
Arrays.sort(a);
System.out.println("昇順のa:" + Arrays.toString(a));
//将数组a指向一个新的数组b
int l = a.length;
int []b = new int[l];
for (int x = 0; x < l; x++) {
b[x] = a[l - 1 - x];
}
a = b;
System.out.println("降順のa:" + Arrays.toString(a));
}
}
运行结果:
a:[55, 69, 30, 21]
昇順のa:[21, 30, 55, 69]
降順のa:[69, 55, 30, 21]