我需要排序一個二維arrylist Java和獲取排序元素的索引。要做到這一點我 1.第一次寫這個代碼,我做一個普通類數組元素進行排序,並獲得排序元素的原始指數:排序2d arraylist和得到索引java
public static int[] Sort_Index(double[] arr){
int[] indices = new int[arr.length];
indices[0] = 0;
for(int i=1;i<arr.length;i++){
int j=i;
for(;j>=1 && arr[j]<arr[j-1];j--){
double temp = arr[j];
arr[j] = arr[j-1];
indices[j]=indices[j-1];
arr[j-1] = temp;
}
indices[j]=i;
}
return indices;//indices of sorted elements
}
然後我用這個循環來安排的ArrayListÿ
for(int i=0;i<Input.General_Inputs.Num_objectives;i++){
double[] sort_y=new double[y.size()];
for(int row=0;row<y.size();row++)
sort_y[row]=y.get(row).get(Input.General_Inputs.Num+i);
int[] sort_y_index=Sort_Index(sort_y);
}
}
對我來說,下一步就是使用這個索引將y ArrayList中的值存儲到新的ArrayList中。但我認爲這是完全沒有效率的更好的想法?
感謝您的回覆,但這個概念對我來說是新的,你可以舉一個簡單的例子來說明如何使用這個概念謝謝 – 2015-02-11 22:39:15