使用比较器的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();
}
}
我希望你们能快速解决它
答案 0 :(得分:0)
sort(T[] a, Comparator<? super T> c)
只接受引用类型的数组,它不适用于原始数组。您可以将v2
更改为Integer
的数组。
更改
int[] v2=new int[n];
到
Integer[] v2=new Integer[n];