如何将两个排序的String数组编成一个排序的数组

时间:2014-05-11 17:28:54

标签: java arrays string sorting

我想知道是否有人知道如何将两个阵列快速编成一个? 可以说有两个这样的数组:

String [ ] a1 = {"b","d","i","j","p","w","z"} 

String [ ] a2 = {"a","c","e","f","h","q","r"}. 

这些都已排序,但我想将它们与braiding技术合并,以便它成为一个长排序数组。

到目前为止,这是我的方法,它不起作用,tmp数组最后只有null [x]。

static void braid(String [] a, String[] b){
    String [] tmp = new String [a.length+b.length];
    for(int i = 0; i < a.length; i++){
        for(int j = 0; j < b.length; j++){
            if(a[i].compareTo(b[j]) < 0) tmp[i] = a[i];
            else if(b[i].compareTo(a[j]) < 0) tmp[i] = b[i];
        }
    }
    for(int i = 0; i < tmp.length;i++){
        System.out.print(tmp[i] + "+");
    }
    System.out.println();
}

2 个答案:

答案 0 :(得分:1)

我之前没有听说过“编织”这个词 - 但问题本身的解决方案如下:

使用单个while循环迭代,保持a1和a2的位置(均从0开始)。 while循环的条件应检查a1和a2的位置是否分别大于a1和a2的大小。在while循环中,只增加数组的位置,从中插入tmp - 即包含较小元素的数组。

答案 1 :(得分:0)

我会从Apache commons库导入ArrayUtils类。为什么在轮子已经退出时重新发明轮子。

String[] a3 = ArrayUtils.addAll(a1, a2);
Arrays.sort(a3);