如题所述
public static void main(String[]args)
{
//创建数组
String[] a = { "0", "3", "2", "1" };
String[] b = { "8", "7", "6", "5", "4" };
String[] c = new String[a.length + b.length];
//复制数据
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
//利用 Arrays排序
Arrays.sort(c);
//遍历展示数据
for(String _var : c)
{
System.out.println(_var);
}
}
基本思路就是这样..先合并 然后排序 然后输出..
希望能够帮助到你.. 合并的时候还有其他的方法..有兴趣你可以去了解下 ~~
{
//创建数组
String[] a = { "0", "3", "2", "1" };
String[] b = { "8", "7", "6", "5", "4" };
String[] c = new String[a.length + b.length];
//复制数据
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
//利用 Arrays排序
Arrays.sort(c);
//遍历展示数据
for(String _var : c)
{
System.out.println(_var);
}
}
基本思路就是这样..先合并 然后排序 然后输出..
希望能够帮助到你.. 合并的时候还有其他的方法..有兴趣你可以去了解下 ~~
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2018-05-10
@Test
public void testJoinArr1(){
int[] arr1 = {1, 2, 3}; // 已经排序好的第一个数组
int[] arr2 = {10, 20, 30, 40}; // 已经排序好的第二个数组
int[] newArr = new int[arr1.length + arr2.length]; // 创建一个新的数组来容纳合并的值
System.arraycopy(arr1, 0, newArr, 0, arr1.length); // JDK提供的方法, 详细说明可以看文档
System.arraycopy(arr2, 0, newArr, arr1.length, arr2.length);
Arrays.sort(newArr); // JDK提供的方法, 详细说明可以看文档
for (int i : newArr) {
System.out.print(i + ",\t");
}
}
如果你是学习编程的话, 建议自己写代码来实现.
public void testJoinArr1(){
int[] arr1 = {1, 2, 3}; // 已经排序好的第一个数组
int[] arr2 = {10, 20, 30, 40}; // 已经排序好的第二个数组
int[] newArr = new int[arr1.length + arr2.length]; // 创建一个新的数组来容纳合并的值
System.arraycopy(arr1, 0, newArr, 0, arr1.length); // JDK提供的方法, 详细说明可以看文档
System.arraycopy(arr2, 0, newArr, arr1.length, arr2.length);
Arrays.sort(newArr); // JDK提供的方法, 详细说明可以看文档
for (int i : newArr) {
System.out.print(i + ",\t");
}
}
如果你是学习编程的话, 建议自己写代码来实现.
第2个回答 2012-11-05
像这类题可以到程序设计里去提问,这样得到的帮助会更多。基本上任何编程语言都涉及关于数组的操作。不用非得到java相关。很多C、C++编程高手也未必关注java。
------------------------------------------------------------------------------------------------------
我给你一点我的想法:
首先,有两个指针分别指向两个数组的首元素,由于两个数组已经排序了,用一个数组A指针指向的值去跟另一数组B指针指向的值比较,比它小数组A指针就向后移动,B指针不动,继续比较。若B指针指向的值小,则A指针不动。B指针后移,继续比较。然后,这期间要注意比较的元素都转存到新的数组里。
希望能够帮助你!~代码应该网上有。最好能够自己实现以下这样收获更大。
------------------------------------------------------------------------------------------------------
我给你一点我的想法:
首先,有两个指针分别指向两个数组的首元素,由于两个数组已经排序了,用一个数组A指针指向的值去跟另一数组B指针指向的值比较,比它小数组A指针就向后移动,B指针不动,继续比较。若B指针指向的值小,则A指针不动。B指针后移,继续比较。然后,这期间要注意比较的元素都转存到新的数组里。
希望能够帮助你!~代码应该网上有。最好能够自己实现以下这样收获更大。
第3个回答 2012-11-05
public int[] fuck(int[] nums1, int[] nums2) {
int[] nums = new int[nums1.length + nums2.length];
for (int i = 0; i < nums.length; i++) {
if (i < nums1.length) {
nums[i] = nums1[i];
} else {
nums[i] = nums2[i - nums1.length];
}
}
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
return nums;
}
int[] nums = new int[nums1.length + nums2.length];
for (int i = 0; i < nums.length; i++) {
if (i < nums1.length) {
nums[i] = nums1[i];
} else {
nums[i] = nums2[i - nums1.length];
}
}
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
return nums;
}
第4个回答 2012-11-05
int a[],b[];
....
....
上面是初始化
int[] result=new int[a.size()+b.size()];
System.arraycopy(a,0,result,0,a.size());
System.arraycopy(b,0,result,a.size(),b.size());
Arrays.sort(result);
....
....
上面是初始化
int[] result=new int[a.size()+b.size()];
System.arraycopy(a,0,result,0,a.size());
System.arraycopy(b,0,result,a.size(),b.size());
Arrays.sort(result);