Java 如何将两个排序字符串数组编织成一个排序数组

Java 如何将两个排序字符串数组编织成一个排序数组,java,arrays,string,sorting,Java,Arrays,String,Sorting,我想知道是否有人知道如何将两个阵列快速编织成一个阵列? 假设有两个这样的数组: String [ ] a1 = {"b","d","i","j","p","w","z"} String [ ] a2 = {"a","c","e","f","h","q","r"}. 它们都已排序,但我想用编织技术将它们合并,这样它将成为一个长排序数组 到目前为止,这是我的方法,但它不起作用,tmp数组在[x]处的结果是null static void braid(String [] a, String[]

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

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

String [ ] a2 = {"a","c","e","f","h","q","r"}. 
它们都已排序,但我想用
编织技术将它们合并,这样它将成为一个长排序数组

到目前为止,这是我的方法,但它不起作用,tmp数组在[x]处的结果是
null

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();
}
静态空心编织带(串[]a,串[]b){
字符串[]tmp=新字符串[a.length+b.length];
for(int i=0;i
我以前没听说过“编织”这个词——但问题本身的解决方案如下:


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

我将从Apache commons库导入
ArrayUtils
类。既然轮子已经存在,为什么还要重新发明呢

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

你能链接到“编织”一词的定义吗?