两个二维数组怎么合并一起

qiyuxiaozi 2009-08-15 06:16:03


这样的两个二维数组怎么合成一个 比如 第一个是 【19】【4】 第二个是【25】【6】 我想把他们 的 第二维 【4】 跟【6】 合成 一个 也就是变成【10】 而 【19】 跟【25】 全变成【25】 也就是说 第一个是19个数组 第二个数25个数组 两个合并的时候 合到20的 时候 25还有数 但19没有了 19也继续输出成空 而25的 继续一起输出 那位大侠帮帮忙 急用 。。 本人 基本不太好 呵呵
...全文
1410 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshizhangge 2009-08-16
  • 打赏
  • 举报
回复
什么叫第二维合并到20的时候19就没数了??
qiyuxiaozi 2009-08-15
  • 打赏
  • 举报
回复
不好意思 我看错了 你的对 谢谢
qiyuxiaozi 2009-08-15
  • 打赏
  • 举报
回复
呵呵 你的错了 你看看 我把你的 数组值改成 5 8 3 1 你试试
malligator 2009-08-15
  • 打赏
  • 举报
回复
一个测试输出:
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
malligator 2009-08-15
  • 打赏
  • 举报
回复
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();
}
}
}
yuxiaomin___ 2009-08-15
  • 打赏
  • 举报
回复
都是这样学习的。。
Sonyer_520 2009-08-15
  • 打赏
  • 举报
回复
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
bigbug9002 2009-08-15
  • 打赏
  • 举报
回复
哦,那8楼的代码应该没有问题.
knightzhuwei 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 bigbug9002 的回复:]
引用 13 楼 knightzhuwei 的回复:
引用 10 楼 bigbug9002 的回复:
好两个图,我怎么看不到啊.

右键属性把图片链接复制到地址栏进去看

第一个能看,第二个还是看不到.
[/Quote]
第二个图是这样的。。。。。
bigbug9002 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 knightzhuwei 的回复:]
引用 10 楼 bigbug9002 的回复:
好两个图,我怎么看不到啊.

右键属性把图片链接复制到地址栏进去看
[/Quote]
第一个能看,第二个还是看不到.
knightzhuwei 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bigbug9002 的回复:]
好两个图,我怎么看不到啊.
[/Quote]
右键属性把图片链接复制到地址栏进去看
huangran 2009-08-15
  • 打赏
  • 举报
回复
学习
loveofmylife 2009-08-15
  • 打赏
  • 举报
回复
看不到图~~~
bigbug9002 2009-08-15
  • 打赏
  • 举报
回复
好两个图,我怎么看不到啊.
bigbug9002 2009-08-15
  • 打赏
  • 举报
回复
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>
loveofmylife 2009-08-15
  • 打赏
  • 举报
回复

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
yanliang_xt 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 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¡­
[/Quote]


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
songjingjing1985 2009-08-15
  • 打赏
  • 举报
回复
我看不到图的
yanliang_xt 2009-08-15
  • 打赏
  • 举报
回复

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];
}
}
}
}
knightzhuwei 2009-08-15
  • 打赏
  • 举报
回复
这图是大了清晰了 可惜我还是看不出有什么用 唉 算了 我退散。。
加载更多回复(3)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧