求教:Collections.reverse()为什么不能将数组元素的顺序颠倒? 我将10个随机数存入int数组a,然后用Arrays.sort(a)排序,想再用Collections.reverse(Arrays.asList(a))将其排成降序,但是没有成功,输出的还是升序,哪位帮忙看看是什么原因,源代码如下: import java.util.*; public class Exe1111 { public static void main(String[] args) { int[] a = new int[10]; Random rd = new Random(); for(int i=0; i<10; i++) { a[i] = rd.nextInt(10000); System.out.println(a[i]); } Arrays.sort(a); for(int j=0; j<10; j++) { System.out.println("asc:" + a[j]); } Collections.reverse(Arrays.asList(a)); System.out.println(Arrays.toString(a)); //输出的字符串中的数字顺序与使用Arrays.sort(a)后一样,都是升序,为什么啊? } }
------解决方案--------------------
Java code
int[] a = new int[10];
...
Arrays.asList(a); //关键在这句,asList 把 a 包装成了一个长度为 1 元素类型为 int[] 的 List 了。
//下面代码能验证
List list = Arrays.asList(a);
System.out.println(list.size()); //结果为 1
System.out.println(list.get(0)); //结果为 [I@de6ced
------解决方案--------------------