我想知道是否有人知道如何将两个阵列快速编成一个? 可以说有两个这样的数组:
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();
}
答案 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);