这样的两个二维数组怎么合成一个 比如 第一个是 【19】【4】 第二个是【25】【6】 我想把他们 的 第二维 【4】 跟【6】 合成 一个 也就是变成【10】 而 【19】 跟【25】 全变成【25】 也就是说 第一个是19个数组 第二个数25个数组 两个合并的时候 合到20的 时候 25还有数 但19没有了 19也继续输出成空 而25的 继续一起输出 那位大侠帮帮忙 急用 。。 本人 基本不太好 呵呵
调试欢乐多
public class Test
{
public static void main(String... args) {
int[][] arr1 = new int[19][4];
int[][] arr2 = new int[25][6];
int[][] arr3 = new int[25][10];
System.out.println(arr1.length);
for(int i = 0; i < arr3.length;i++) {
int j = 0;
if(i < 19)
for(j = 0; j < arr1[0].length;j++) {
arr3[i][j]=arr1[i][j];
}
else
for(j = 0; j < arr1[0].length;j++) {
arr3[i][j]=0;
}
for(int k = j; k < arr3[i].length; k++) {
arr3[i][k]= arr2[i][arr3[i].length-arr2[i].length];
}
}
}
}
{
public static void main(String... args) {
int[][] arr1 = new int[][] {{1,2,3},{2,3,4},{5,6,7}}; // 3.3
int[][] arr2 = new int[][] {{1,2,3,4},{2,3,4,5},{5,6,7,8},{3,4,5,6}}; // 4,4
int[][] arr3 = new int[4][7];
System.out.println(arr1.length);
for(int i = 0; i < arr3.length;i++) {
int j = 0;
if(i < arr1.length)
for(j = 0; j < arr1[0].length;j++) {
arr3[i][j]=arr1[i][j];
}
else
for(j = 0; j < arr1[0].length;j++) {
arr3[i][j]=0;
}
for(int k = j; k < arr3[i].length; k++) {
arr3[i][k]= arr2[i][k - arr1[0].length];
}
}
for(int[] arr:arr3) {
for(int i : arr) {
System.out.print(i + " " );
}
System.out.println("");
}
}
}对不起有点问题,修改了一下:
1 2 3 1 2 3 4
2 3 4 2 3 4 5
5 6 7 5 6 7 8
0 0 0 3 4 5 6
package day19;public class Test2 {
public Object[][] arrayConflate(Object[][] arr1,Object[][] arr2){
Object[][] arr=new Object[Math.max(arr1.length, arr2.length)][arr1[0].length+arr2[0].length];
if(arr1.length>=arr2.length){
for(int i=0;i<arr2.length;i++){
for(int j=0;j<arr1[0].length;j++){
arr[i][j]=arr1[i][j];
}
for(int j=0;j<arr2[0].length;j++){
arr[i][j+arr1[0].length-1]=arr1[i][j];
}
}
for(int i=arr2.length;i<arr1.length;i++){
for(int j=0;j<arr1[0].length;j++){
arr[i][j]=arr1[i][j];
}
}
}else{
for(int i=0;i<arr1.length;i++){
for(int j=0;j<arr1[0].length;j++){
arr[i][j]=arr1[i][j];
}
for(int j=0;j<arr2[0].length;j++){
arr[i][j+arr1[0].length]=arr2[i][j];
}
}
for(int i=arr1.length;i<arr2.length;i++){
for(int j=0;j<arr2[0].length;j++){
arr[i][j]=arr2[i][j];
}
}
}
return arr;
}
public static void main(String[] args) {
Object[][] arr1=new Object[19][4];
Object[][] arr2=new Object[25][6];
for(int i=0;i<arr1.length;i++){
for(int j=0;j<arr1[0].length;j++){
arr1[i][j]="1";
}
}
for(int i=0;i<arr2.length;i++){
for(int j=0;j<arr2[0].length;j++){
arr2[i][j]="2";
}
}
Test2 t=new Test2();
Object arr[][]=t.arrayConflate(arr1,arr2);
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[0].length;j++){
System.out.print(arr[i][j]);
}
System.out.println();
}
}}结果1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
1111222222
222222nullnullnullnull
222222nullnullnullnull
222222nullnullnullnull
222222nullnullnullnull
222222nullnullnullnull
222222nullnullnullnull
public static int[][] mergeArray(int[][] arr1,int[][] arr2){
int[][] result=new int[Math.max(arr1.length,arr2.length)][];
int i=0,j=0,k=0;
for(;i<arr1.length&&j<arr2.length;i++,j++,k++){
result[k]=new int[arr1[i].length+arr2[i].length];
System.arraycopy(arr1[i],0,result[k],0,arr1[i].length);
System.arraycopy(arr2[j],0,result[k],arr1[i].length,arr2[j].length);
}
for(;i<arr1.length;i++,k++){
result[k]=new int[arr1[i].length];
System.arraycopy(arr1[i],0,result[k],0,arr1[i].length);
}
for(;j<arr2.length;j++,k++){
result[k]=new int[arr2[j].length];
System.arraycopy(arr2[j],0,result[k],0,arr2[j].length);
}
return result;
}
public static void printArray(int[][] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.printf("%4d",arr[i][j]);
}
System.out.println();
}
}
public static void main(String[] args){
Random rand=new Random();
int[][] arr1=new int[25][6];
int[][] arr2=new int[19][4];
for(int i=0;i<arr1.length;i++){
for(int j=0;j<arr1[i].length;j++){
arr1[i][j]=rand.nextInt(100);
}
}
for(int i=0;i<arr2.length;i++){
for(int j=0;j<arr2[i].length;j++){
arr2[i][j]=rand.nextInt(100);
}
}
System.out.println("arr1");
printArray(arr1);
System.out.println("arr2");
printArray(arr2);
System.out.println("arr1+arr2");
int[][] arr3=mergeArray(arr1,arr2);
printArray(arr3);
}}F:\java>java Test7
arr1
46 66 60 53 13 91
22 54 86 6 49 78
48 3 14 77 5 54
95 99 70 76 50 15
48 88 16 48 68 44
0 74 15 13 35 45
32 58 94 89 50 98
56 39 87 96 74 59
35 65 9 99 68 81
22 72 5 94 46 43
58 2 29 84 75 63
25 71 40 90 76 68
6 38 62 45 39 11
41 34 98 87 88 86
58 32 39 81 5 28
89 22 69 95 88 40
26 88 78 32 39 23
84 30 87 89 56 25
64 20 56 68 58 78
63 8 63 87 53 44
55 9 2 53 12 93
56 42 32 6 24 99
89 8 44 42 55 63
76 31 53 23 83 91
7 46 10 92 96 96
arr2
7 0 91 15
32 55 72 78
43 42 57 8
41 50 80 87
14 38 12 93
92 31 74 88
22 30 2 34
74 31 68 25
22 77 1 70
79 89 0 55
79 97 77 99
52 34 85 62
16 45 57 51
32 92 81 14
25 21 65 82
65 5 13 28
39 79 22 6
11 18 2 24
41 89 12 85
arr1+arr2
46 66 60 53 13 91 7 0 91 15
22 54 86 6 49 78 32 55 72 78
48 3 14 77 5 54 43 42 57 8
95 99 70 76 50 15 41 50 80 87
48 88 16 48 68 44 14 38 12 93
0 74 15 13 35 45 92 31 74 88
32 58 94 89 50 98 22 30 2 34
56 39 87 96 74 59 74 31 68 25
35 65 9 99 68 81 22 77 1 70
22 72 5 94 46 43 79 89 0 55
58 2 29 84 75 63 79 97 77 99
25 71 40 90 76 68 52 34 85 62
6 38 62 45 39 11 16 45 57 51
41 34 98 87 88 86 32 92 81 14
58 32 39 81 5 28 25 21 65 82
89 22 69 95 88 40 65 5 13 28
26 88 78 32 39 23 39 79 22 6
84 30 87 89 56 25 11 18 2 24
64 20 56 68 58 78 41 89 12 85
63 8 63 87 53 44
55 9 2 53 12 93
56 42 32 6 24 99
89 8 44 42 55 63
76 31 53 23 83 91
7 46 10 92 96 96F:\java>
public static void main(String[] args) {
String[][] str1 = {{"1","2","3","4"},{"21","22","23","24"},{"31","32","33","34"}};
String[][] str2 = {{"a1","a2","a3","a4"},{"b1","b2","b3","b4"},{"c1","c2","c3","c4"},{"d1","d2","d3","d4"}};
String[][] str3 = new String[4][8];
for(int i = 0;i < 8; i++){ //列
for(int j = 0; j< 4; j++){ //行
if(i<4 && j<3){ //把str1列入str3数组
System.out.println(str1[2][3]);
str3[j][i] = str1[j][i];
}else if(i<4 && j>3){ //把空白处列入str3数组
str3[j][i] = null;
}else if(i>=4){
str3[j][i] = str2[j][i-4]; //把str2列入str3数组
}
}
}
for(int i = 0;i < 4;i++){
for(int j = 0; j< 8; j++){
System.out.print(str3[i][j]+"\t");
}
System.out.println("");
}
}
}
1 2 3 4 a1 a2 a3 a4
21 22 23 24 b1 b2 b3 b4
31 32 33 34 c1 c2 c3 c4
null null null null d1 d2 d3 d4
public static void main(String[] args) {
int[][] a = new int[19][4];
int[][] b = new int[26][6];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j] = (int) (Math.random()*100);
}
}
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[i].length; j++) {
b[i][j] = (int) (Math.random()*100);
}
}
System.out.println("the first array:");
printArray(a);
System.out.println("the second array:");
printArray(b);
System.out.println("the merged result:");
printArray(merge(a, b));
}
public static int[][] merge(int[][] a, int[][] b) {
int[][] result = new int[a.length>b.length?a.length:b.length][a[0].length+b[0].length];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
result[i][j] = a[i][j];
}
}
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[i].length; j++) {
result[i][j+a[0].length] = b[i][j];
}
}
return result;
}
static void printArray(int[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+"\t");
}
System.out.println();
}
}
}
the first array:
89 60 17 15
12 20 7 33
85 22 91 45
51 64 14 94
61 11 45 62
81 56 23 44
85 74 6 82
82 62 94 24
22 32 94 95
77 17 66 74
55 36 53 84
50 42 29 62
76 34 6 35
45 60 97 88
97 14 35 9
58 14 4 13
61 52 90 53
80 9 36 53
89 89 85 1
the second array:
67 40 62 29 70 25
36 82 27 66 46 84
71 81 45 22 47 55
35 96 57 99 30 35
29 4 72 45 16 51
77 14 76 2 62 21
49 99 24 78 55 4
0 76 57 12 51 41
51 26 46 58 42 36
2 0 54 76 79 84
7 82 62 63 63 85
2 28 9 70 2 53
0 9 53 50 20 39
16 87 66 8 46 78
80 17 43 82 69 19
66 13 56 22 49 52
22 87 69 40 47 14
96 17 94 25 76 54
85 37 29 92 39 6
55 23 35 17 66 74
61 13 33 67 88 3
67 24 76 0 83 8
97 66 14 3 83 40
73 34 6 2 26 29
54 66 76 74 74 84
98 48 7 20 78 74
the merged result:
89 60 17 15 67 40 62 29 70 25
12 20 7 33 36 82 27 66 46 84
85 22 91 45 71 81 45 22 47 55
51 64 14 94 35 96 57 99 30 35
61 11 45 62 29 4 72 45 16 51
81 56 23 44 77 14 76 2 62 21
85 74 6 82 49 99 24 78 55 4
82 62 94 24 0 76 57 12 51 41
22 32 94 95 51 26 46 58 42 36
77 17 66 74 2 0 54 76 79 84
55 36 53 84 7 82 62 63 63 85
50 42 29 62 2 28 9 70 2 53
76 34 6 35 0 9 53 50 20 39
45 60 97 88 16 87 66 8 46 78
97 14 35 9 80 17 43 82 69 19
58 14 4 13 66 13 56 22 49 52
61 52 90 53 22 87 69 40 47 14
80 9 36 53 96 17 94 25 76 54
89 89 85 1 85 37 29 92 39 6
0 0 0 0 55 23 35 17 66 74
0 0 0 0 61 13 33 67 88 3
0 0 0 0 67 24 76 0 83 8
0 0 0 0 97 66 14 3 83 40
0 0 0 0 73 34 6 2 26 29
0 0 0 0 54 66 76 74 74 84
0 0 0 0 98 48 7 20 78 74