我需要基于另一个数组中保存的位置对数组进行排序。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