排序我有一個數組這樣的:根據最後一列
UserID |ItemID | Score
1 10 2.0
1 11 1.2
1 12 1.4
..........
我想根據得分列數組排序。我的代碼是:
double[][] arr=new double [1000][3];
int i=0;int j=0;int k=0;
while ((phrase = br.readLine()) != null) {
String[] splited =phrase.split("\t");
arr[i][0]=Double.parseDouble(splited[0]);
i++;
arr[j][1]=Double.parseDouble(splited[1]);
j++;
arr[k][2]=Double.parseDouble(splited[2]);
k++;
}
//print(a);
System.out.println();
Arrays.sort(arr, new java.util.Comparator<double[]>() {
public int compare(double[] a, double[] b) {
return (int)(a[1] -b[1]);
}
});
print(arr);
但它不起作用!哪裏不對?
另外我用return(int)(a [1] -b [1]);並不排序數組,但正如你所說我使用這個返回:return Double.compare(o1 [2],o2 [2]);它的工作原理。謝謝你 – user951487 2012-01-13 06:56:34
很高興有幫助:) – 2012-01-13 22:41:08