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)后一样,都是升序,为什么啊?
}
}
12 个解决方案
#1
Arrays.asList(a)返回什么?
Collections.reverse(Arrays.asList(a)); //会不会改变a?
Collections.reverse(Arrays.asList(a)); //会不会改变a?
List l = Arrays.asList(1,2,3);
Collections.reverse(l);
System.out.println(l);
#2
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)); //你是对asList方法返回的List排序,跟a没关系,所以下面输出的a不变
System.out.println(Arrays.toString(a));
}
}
#3
学习
#4
我是楼主,请问要怎么样才能既使用Collections.reverse(),又将颠倒顺序后的数输出?
#5
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
#6
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
public class Exe1111 {
public static void main(String[] args) {
Integer[] a = new Integer[10];
Random rd = new Random();
for (int i = 0; i < a.length; i++) {
a[i] = rd.nextInt(10000);
System.out.println(a[i]);
}
Arrays.sort(a);
for (int i = 0; i < a.length; i++) {
System.out.println("asc:" + a[i]);
}
Collections.reverse(Arrays.asList(a));
System.out.println(Arrays.toString(a));
}
}
#7
做不出来呢。。。看了很久API,找不到适合的类来做。。。本人太菜了。。。
#8
谢谢sagezk!你说的办法果然管用。
#9
int[] a = new int[10];
Integer[] a = new Integer[10];
主要区别是什么呢,为什么用Integer就可以?可以说说原因吗?
Integer[] a = new Integer[10];
主要区别是什么呢,为什么用Integer就可以?可以说说原因吗?
#10
因为Arrays.asList(a)产生一个List对象。如果a为int型数组,Arrays.asList(a)将产生一个长度为1的List对象,这个对象只包含一个元素,这个元素的值就是整个int型数组。如果a是Integer数组,Arrays.asList(a)产生的List对象的每个元素与Integer数组的元素一一对应。 Collections.reverse(Arrays.asList(a))是对这个List对象中的每个元素进行排序。所以只能用Integer数组
#11
学习啊
#12
学习了,谢谢
#1
Arrays.asList(a)返回什么?
Collections.reverse(Arrays.asList(a)); //会不会改变a?
Collections.reverse(Arrays.asList(a)); //会不会改变a?
List l = Arrays.asList(1,2,3);
Collections.reverse(l);
System.out.println(l);
#2
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)); //你是对asList方法返回的List排序,跟a没关系,所以下面输出的a不变
System.out.println(Arrays.toString(a));
}
}
#3
学习
#4
我是楼主,请问要怎么样才能既使用Collections.reverse(),又将颠倒顺序后的数输出?
#5
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
#6
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
public class Exe1111 {
public static void main(String[] args) {
Integer[] a = new Integer[10];
Random rd = new Random();
for (int i = 0; i < a.length; i++) {
a[i] = rd.nextInt(10000);
System.out.println(a[i]);
}
Arrays.sort(a);
for (int i = 0; i < a.length; i++) {
System.out.println("asc:" + a[i]);
}
Collections.reverse(Arrays.asList(a));
System.out.println(Arrays.toString(a));
}
}
#7
做不出来呢。。。看了很久API,找不到适合的类来做。。。本人太菜了。。。
#8
谢谢sagezk!你说的办法果然管用。
#9
int[] a = new int[10];
Integer[] a = new Integer[10];
主要区别是什么呢,为什么用Integer就可以?可以说说原因吗?
Integer[] a = new Integer[10];
主要区别是什么呢,为什么用Integer就可以?可以说说原因吗?
#10
因为Arrays.asList(a)产生一个List对象。如果a为int型数组,Arrays.asList(a)将产生一个长度为1的List对象,这个对象只包含一个元素,这个元素的值就是整个int型数组。如果a是Integer数组,Arrays.asList(a)产生的List对象的每个元素与Integer数组的元素一一对应。 Collections.reverse(Arrays.asList(a))是对这个List对象中的每个元素进行排序。所以只能用Integer数组
#11
学习啊
#12
学习了,谢谢