兩個二維數組怎么合並一起


 [img=http://a22.photo.store.qq.com/http_imgload.cgi?/rurl4_s=ce5fe3ea60bd4b3e415da185b17ddaedb871d01f8e5a6ecfae7bbf97479649a17472516ed811144011066b2bd8e3aafb0a99c0e27f07739e93aa265f932defcca292f8b6f418d54272d7eb7a047a946d63aef831][/img]

這樣的兩個二維數組怎么合成一個   比如 第一個是   【19】【4】  第二個是【25】【6】  我想把他們  的 第二維 【4】  跟【6】  合成 一個 也就是變成【10】 而    【19】 跟【25】   全變成【25】   也就是說  第一個是19個數組 第二個數25個數組 兩個合並的時候  合到20的 時候  25還有數 但19沒有了  19也繼續輸出成空  而25的  繼續一起輸出  那位大俠幫幫忙  急用 。。   本人 基本不太好 呵呵   

24 个解决方案

#1


看不到圖啊

#2


引用 1 樓 bigbug9002 的回復:
看不到圖啊

他的圖看了也沒用

#3


圖    是這個   看看能幫我解決不 謝謝大家  時間緊迫

#4


這圖是大了清晰了 可惜我還是看不出有什么用 唉 算了 我退散。。

#5



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

#6


我看不到圖的

#7


引用 5 樓 yanliang_xt 的回復:
Java codepublicclass Test
{publicstaticvoid main(String... args) {int[][] arr1=newint[19][4];int[][] arr2=newint[25][6];int[][] arr3=newint[25][10];
        System.out.println(arr1.length);for(int i=0¡­



public class Test
{
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

#8



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

#9


import java.util.*;

public class Test7{
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  96

F:\java>

#10


好兩個圖,我怎么看不到啊.

#11


看不到圖~~~

#12


學習

#13


引用 10 樓 bigbug9002 的回復:
好兩個圖,我怎么看不到啊.

右鍵屬性把圖片鏈接復制到地址欄進去看

#14


引用 13 樓 knightzhuwei 的回復:
引用 10 樓 bigbug9002 的回復:
好兩個圖,我怎么看不到啊.

右鍵屬性把圖片鏈接復制到地址欄進去看

第一個能看,第二個還是看不到.

#15


引用 14 樓 bigbug9002 的回復:
引用 13 樓 knightzhuwei 的回復:
引用 10 樓 bigbug9002 的回復:
好兩個圖,我怎么看不到啊.

右鍵屬性把圖片鏈接復制到地址欄進去看

第一個能看,第二個還是看不到.

第二個圖是這樣的。。。。。

#16


哦,那8樓的代碼應該沒有問題.

#17


該回復於2009-08-16 09:47:06被版主刪除

#18


package cn.com.syq.ss;

public class Test {
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

#19


  都是這樣學習的。。

#20


public class ArraysMerging {
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();
}
}
}

#21


一個測試輸出:
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

#22


呵呵 你的錯了  你看看  我把你的 數組值改成 5 8    3 1  你試試 

#23


不好意思  我看錯了   你的對 謝謝  

#24


什么叫第二維合並到20的時候19就沒數了??

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: