
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...};
编码前提,两个数组长度多少未知,短的数组结束了就不用交叉,直接补上长的数组剩余部分 展开
int[] a2 = {2,4,6,8...};
合并为int[] arr = {1,2,3,4,5,6,7,8,9...};
编码前提,两个数组长度多少未知,短的数组结束了就不用交叉,直接补上长的数组剩余部分 展开
2个回答
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]+" ");
}
}
追问
这种合并我也知道,交叉合并切长度不确定才是比较麻烦的地方
追答
只是交叉合并就不难了,只要取值之前判断一下长度,而不用比较大小了
展开全部
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)));
}
}
本回答被提问者采纳

你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询