首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

数组的排序,取值!解决方案

2012-01-23 
数组的排序,取值!!!!如题 2个数组String[]a {}int []b {}a[i] 与b[i]的值是一一对应的如果对b数组升排

数组的排序,取值!!!!
如题 2个数组
 String[]a ={};
 int []b ={};
a[i] 与b[i]的值是一一对应的
如果对b数组升排序 使得a数组对应也随之排序

这怎么做 请教大神!!或者有什么其他方法来使得一一对应的两组数 同时排序改变?

[解决办法]
个人的简单思路。

Java code
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维的元素
Java code
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));} 

热点排行