读书人

java 数结合并(一维二维横向二维

发布时间: 2012-12-27 10:17:10 作者: rapoo

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;}

读书人网 >编程

热点推荐