从键盘输入两个长度不一样的数组,然后怎么把他们合并在一个里面,按从小到大的输出?java的,求代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从键盘输入两个长度不一样的数组,然后怎么把他们合并在一个里面,按从小到大的输出?java的,求代码相关的知识,希望对你有一定的参考价值。
public static void main(String[] args) throws Exceptionjava.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
System.out.println("请输入数组1的大小:");
int len1 = Integer.parseInt(br.readLine());//数组长度
System.out.println("请输入数组2的大小:");
int len2 = Integer.parseInt(br.readLine());//数组长度
int[] a = new int[len1 + len2];
int[] b = new int[len2];
//java.util.Scanner sc = new java.util.Scanner(System.in);//照顾到JDK1.5以前的用户,用上面的方法,
System.out.println("请输入" + len1 + "组数字来初始化数组 a:");
int c = 0;
String tmp;
while (c < len1)
try
tmp = br.readLine();
int d = Integer.parseInt(tmp.trim());
a[c++] = d;
catch (Exception e)
System.out.println("请输入有效的整数!");
continue;
System.out.println("请输入" + len2 + "组数字来初始化数组 b:");
c = 0;
while (c < len2)
try
tmp = br.readLine();
int d = Integer.parseInt(tmp.trim());
b[c++] = d;
catch (Exception e)
System.out.println("请输入有效的整数!");
continue;
System.out.println("正在合并数组:");
for (int i = 0; i < len2; i++)
a[i+len1] = b[i];
Thread.sleep(500);
System.out.println("正在排序数组:");
java.util.Arrays.sort(a);
Thread.sleep(500);
System.out.println("正在输出数组内容(从大到小):");
for (int i = 0; i < len1 + len2; i++)
System.out.print(a[i] + " ");
System.out.println();
追问
你做的太复杂了
参考技术A 从键盘输进去的只能是一个字符串吧。用StringBuilder将两个字符串接起来。
然后 数组???键盘敲进去的都是数字么??
桥数字的时候加空格,
然后将StringBuilder转成字符串,用 split(" ")切成数组,
最后数组排序就行了。 参考技术B 直接合并的话,Java 有 System.arrayCopy()
不过,你貌似合并完之后,还需要排序吧
排序你可以自己写算法,也可以用 TreeMap 之类的做追问
这个是用来专门合并数组的吗
追答arrayCopy 顾名思义,是数组复制,当然能用来做合并
算法 - 合并两个有序数组成一个有序数组
最近看到一个算法题目,觉得很有意义,就自己查资料,摸索着自己实现了代码,特记录一下。
题目:有两个数组a[]和b[],将它们合并成数组c[],需要c[]也是有序数组。
有两种实现思路:
1. 定义一个新数组,长度为两个数组长度之和,将两个数组都copy到新数组,然后排序。
2. 给两个数组分别定义一个下标,最大长度是数组长度减一,按位循环比较两个数组,较小元素的放入新数组,下标加一(注意,较大元素对应的下标不加一),直到某一个下标超过数组长度时退出循环,此时较短数组已经全部放入新数组,较长数组还有部分剩余,最后将剩下的部分元素放入新数组,大功告成。
第一种方式应该是大多数人想到的,也比较容易实现,下面主要来实现第二种方式。
代码如下:
以上是关于从键盘输入两个长度不一样的数组,然后怎么把他们合并在一个里面,按从小到大的输出?java的,求代码的主要内容,如果未能解决你的问题,请参考以下文章