Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组排序降序_Java_Arrays_Sorting - Fatal编程技术网

Java 数组排序降序

Java 数组排序降序,java,arrays,sorting,Java,Arrays,Sorting,我是一个新的java程序员,一直在使用这个网站学习很多方法。今天,我在练习一个项目时遇到了另一个问题 我有一个数组: final int EXAMS = 5; int[] scores = new int [EXAMS]; 然后通过扫描仪对象向用户询问此数组的值: for (int index = 0; index < EXAMS; index++) { System.out.println("Enter the score for " + (in

我是一个新的java程序员,一直在使用这个网站学习很多方法。今天,我在练习一个项目时遇到了另一个问题

我有一个数组:

    final int EXAMS = 5;
    int[] scores = new int [EXAMS];
然后通过扫描仪对象向用户询问此数组的值:

for (int index = 0; index < EXAMS; index++)
    {
        System.out.println("Enter the score for " + (index+1) +":");
        scores[index] = kb.nextInt();
        if (scores[index] < 0){
            System.out.println("The number you have entered is invalid.");
            scores[index] = kb.nextInt();
        }
    }
但我希望排序是降序的。当我把

Arrays.sort(分数、集合.reverseOrder())


我收到一个错误,上面写着:“找不到合适的排序方法。”请帮助。

数组中没有
排序
方法接受
int[]
比较器。
Arrays
类中接受
比较器的
sort
方法需要引用类型的数组(而
int[]
是基元类型的数组)

如果将
scores
数组的类型从
int[]
更改为
Integer[]
,则代码将正常工作,因为方法
公共静态无效排序(T[]a,Comparator可以工作(使用
Integer
对象而不是原语
int
):

不适用于基本体。请尝试此

Integer[] a = new Integer[]{1,2,3,5,4};
            Arrays.sort(a,Collections.reverseOrder());
            for(int i:a)
            {
                System.out.println(i);
            }

java中没有数组的排序方法。但是ArrayList有一个排序方法。您可以使用下面的代码对列表进行反向排序

List l=new ArrayList();
l.add(5);
l.add(1);
l.add(2);
l.add(3);
Collections.sort(l,Collections.reverseOrder());
System.out.println(l);
无法工作,因为数组是基元类型。您可以从int更改为Integer或尝试其他操作,如:

Arrays.sort(scores);
ArrayUtils.reverse(scores);

最后一个选项是生成自己的代码。

您只需将数组类型从
基本类型更改为
基本包装类
,即
int[]分数=新的int[考试]
更改为
整数[]分数=新的整数[考试]


Arrays.sort
接受第一个参数中的包装器数组not primitive。

在插入时对数组进行排序。。
Arrays.sort(a, Collections.reverseOrder());
Integer[] a = new Integer[]{1,2,3,5,4};
            Arrays.sort(a,Collections.reverseOrder());
            for(int i:a)
            {
                System.out.println(i);
            }
List l=new ArrayList();
l.add(5);
l.add(1);
l.add(2);
l.add(3);
Collections.sort(l,Collections.reverseOrder());
System.out.println(l);
Collections.reverseOrder() 
Arrays.sort(scores);
ArrayUtils.reverse(scores);