日期:2014-05-20 浏览次数:21038 次
String[] a = {"a","b","c","d"};
int[] b = {3,1,5,2};
String[] c = new String[b.length];//最终按照对应关系排序后的a数组
String[] d = new String[b.length];//用来记录对应关系的数组
//记录对应关系
for (int i = 0; i < b.length; i++)
{
d[i] = b[i]+"-"+a[i];
}
//排序
for (int i = 0; i < b.length-1; ++i)
{
for (int j = 0; j < b.length - i - 1; ++j)
{
if (b[j] > b[j + 1])
{
int temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
//按照对应关系排序a数组
for (int i = 0; i < b.length; i++)
{
for (int j = 0; j < d.length; j++)
{
if(b[i] == Integer.parseInt(d[j].split("-")[0]))
{
c[i] = d[j].split("-")[1];
}
}
}
//显示
for (int i = 0; i < c.length; i++)
{
System.out.println(c[i]);
}
------解决方案--------------------
a时刻与b同步交换不就行了吗?
排序时如果 b[j]与b[i]交换,则a[j]与a[i]也交换。
------解决方案--------------------
最好自己写个类来专门维护这两个数组。
里面只有int[]
需要取 string[] 的时候 转换一下就好。
------解决方案--------------------
和数据库对某个列的排序是一样的效果。
建议方法。
1)创建数组c,数据来源于数组a,
2)对c 进行排序
3)根据C的数据,查找其在A里面的位置,并对B相同位置的数据进行交换。
------解决方案--------------------
其实跟一个2维数组排序一样,交换1维的同时,也交换2维的元素
String[] a = {"c", "a", "b"};
int[] b = {3, 1, 2};
for (int i=0; i<b.length; i++) {
for (int j=1; j<b.length-i; j++) {
if (b[j-1] > b[j]) { //交换b的同时,也交换a
int tmp = b[j];
b[j] = b[j-1];
b[j-1] = tmp;
String s = a[j];
a[j] = a[j-1];
a[j-1] = a[j];
}
}
System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(a));
}