日期:2014-05-20 浏览次数:20848 次
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)); }