java 数组合并(一维,二维横向,二维纵向)


// 一维数组合并
private static String[] getMergeArray(String[] al, String[] bl) {
String[] a = al;
String[] b = bl;
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);
return c;
}

// 二维数组纵向合并
private static String[][] unite(String[][] content1, String[][] content2) {
String[][] newArrey = new String[][] {};
List<String[]> list = new ArrayList<String[]>();
list.addAll(Arrays.<String[]> asList(content1));
list.addAll(Arrays.<String[]> asList(content2));
return list.toArray(newArrey);
}

// 二维数组横向合并
public static String[][] getMergeArray(String[][] al, String[][] bl) {
if(al == null || al.length == 0) return bl;
if(bl == null || bl.length == 0) return al;
String[][] newArrey = null;
// 根据数组的长度,判断要补全哪个数组
if (al.length > bl.length) {
newArrey = new String[al.length][];
// 补全较短的数组
String[][] temps = new String[al.length - bl.length][bl[0].length];
for (int i = 0; i < temps.length; i++) {
for (int j = 0; j < temps[0].length; j++)
temps[i][j] = "";
}
String[][] btemp = unite(bl, temps);
// 合并
for (int k = 0; k < al.length; k++) {
newArrey[k] = getMergeArray(al[k], btemp[k]);
}
} else {
newArrey = new String[bl.length][];
String[][] temps = new String[bl.length - al.length][al[0].length];
for (int i = 0; i < temps.length; i++) {
for (int j = 0; j < temps[0].length; j++)
temps[i][j] = "";
}
String[][] atemp = unite(al, temps);
for (int k = 0; k < bl.length; k++) {
newArrey[k] = getMergeArray(atemp[k], bl[k]);
}
}
return newArrey;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值