java怎么将两个数组交叉合并

比如int[]a1={1,3,5,7,9...};int[]a2={2,4,6,8...};合并为int[]arr={1,2,3,4,5,6,7,8,9...};编码前提... 比如int[] a1 = {1,3,5,7,9...};
int[] a2 = {2,4,6,8...};
合并为int[] arr = {1,2,3,4,5,6,7,8,9...};
编码前提,两个数组长度多少未知,短的数组结束了就不用交叉,直接补上长的数组剩余部分
展开
 我来答
匿名用户
2014-11-02
展开全部

你好:

        给你个例子,根据你的要求应该改动不用很大,不知道你指的长度未知是怎么传进来的,所以没办法写,

public static void main(String[] args) {
int[] a = {1,3,5,7,9};
    int[] b = {2,4,6,8};
    int[] c = new int[a.length+b.length];
    for (int i = 0; i < a.length; i++) {
c[i] = a[i];
}
    for (int i = 0; i < b.length; i++) {
c[a.length+i] = b[i];
}
    for (int i = 0; i < c.length; i++) {
for (int j = 0; j < c.length; j++) {
if (c[i]<c[j]) {
int temp = c[i];
c[i] = c[j];
c[j] = temp;
}
}
}
    for (int i = 0; i < c.length; i++) {
System.out.print(c[i]+" ");
}
}
追问
这种合并我也知道,交叉合并切长度不确定才是比较麻烦的地方
追答
只是交叉合并就不难了,只要取值之前判断一下长度,而不用比较大小了
旅春冬TJ
推荐于2017-10-06 · TA获得超过1082个赞
知道大有可为答主
回答量:1271
采纳率:66%
帮助的人:598万
展开全部
package test;

import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class Main {

public int[] crossfix(int data[], int data1[])
{
int result[] = new int[data.length + data1.length];
int common = Math.min(data.length, data1.length);
int long_data[] = data.length > data1.length ? data:data1;
int max = long_data.length;
int j = 0;
for(int i = 0; i < common; i++)
{
result[j++] = data[i];
result[j++] = data1[i];
}
for(int i = common; i < max; i++)
{
result[j++] = long_data[i];
}
return result;
}
/**
 * @param args
 */
public static void main(String[] args) {
int a[] = {1,2,3};
int b[] = {4,5,6,7,8};
Main temp = new Main();
System.out.println(Arrays.toString(temp.crossfix(a, b)));
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式