我需要基於另一個數組中保存的位置對數組進行排序。Java:將不同類型的數組排序到另一個
我有什麼工作,但它有點慢,有沒有更快/更好的方式來實現這一點?
2件:
第一部分
int i = mArrayName.size();
int temp = 0;
for(int j=0;j<i;j++){
temp = mArrayPosition.get(j);
mArrayName.set(temp, mArrayNameOriginal.get(j));
}
在這一部分,mArrayPosition是我想mArrayName是在位置
例。
輸入:
mArrayName =(一個,兩個,三個)
mArrayPosition =(2,0,1)
輸出:
mArrayName =(3,一個2)
第2部分
int k=0;
int j=0;
do{
if(mArrayName.get(k)!=mArrayNameOriginal.get(j)){
j++;
}else{
mArrayIdNewOrder.set(k, mArrayId.get(j));
k++;
j=0;
}
}while(k < mArrayName.size());
}
在這種PA rt,mArrayName是重新排序的名稱數組,mArrayNameOriginal是原始名稱數組。
Ex。
mArrayName =(三,一,二)
mArrayNameOriginal =(一,二,三)
現在,我想這兩個數組比較,找出哪些條目都是平等的,涉及的是一個新的數組中有它們的rowId編號。
Ex。
輸入:
mArrayId =(001,002,003)
輸出:
mArrayIdNewOrder =(003001002)
於是我將有mArrayIdNewOrder ID與在mArrayName正確的名稱匹配起來。
就像我說的這些方法的工作,但有沒有更快/更好的方法來做到這一點?我試着看着Arrays.sort和比較器,但他們似乎只是按字母或數字排序。我看到像我可以在比較器中創建自己的規則,但它可能最終會與我已有的相似。
對不起,令人困惑的問題。如果需要,我會盡力澄清任何含糊之處。
我們在說ArrayLists? – ThomasRS 2011-03-04 00:49:52
呃第一個例子怎麼可能是正確的,你不想要(一個@ 2,兩個@ 0,三個@ 1)輸出(兩個,三個,一個)? – ThomasRS 2011-03-04 01:01:33
是這些是arraylists – Cameron 2011-03-04 01:54:57