public static <t> void sort(T [] a,Comparator <! - ?super T - > c)无法正常工作</t>

时间:2015-01-31 05:23:59

标签: java sorting

使用比较器的Arrays.sort()命令无法正常工作。我想按降序对数组进行排序。我的计划如下:

import java.util.*;
import java.io.*;

class MinScalProd
{
public static void main(String[] ar) throws IOException
{
Scanner input=new Scanner(new File("Min.in"));
FileWriter fw = new FileWriter("Min.out");
int T=input.nextInt();
    for(int cases = 1; cases <= T; cases++)
    {
        int n=input.nextInt();
        int[] v1=new int[n];
        int[] v2=new int[n];
        int sp=0;
        for(int i=0;i<n;i++)


        {
            v1[i]=input.nextInt();
        }
        for(int i=0;i<n;i++)
        {
            v2[i]=input.nextInt();
        }
        Comparator comp = Collections.reverseOrder();
        Arrays.sort(v1);
        Arrays.sort(v2,comp);/*here it is giving error(Cannot find symbol)*/
        for(int i=0;i<n;i++)
        {
        sp=sp+v1[i]*v2[i];
        }
        fw.write("Case #" + cases + ": "+sp+"\n");


    }
fw.flush();
fw.close();
}
}

我希望你们能快速解决它

1 个答案:

答案 0 :(得分:0)

sort(T[] a, Comparator<? super T> c)只接受引用类型的数组,它不适用于原始数组。您可以将v2更改为Integer的数组。

更改

int[] v2=new int[n];

Integer[] v2=new Integer[n];