Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将3个数组合并到多维数组中_Java_Arrays_Multidimensional Array - Fatal编程技术网

Java 将3个数组合并到多维数组中

Java 将3个数组合并到多维数组中,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有三个单独的数组,我想合并成一个多维数组 Array 3 [1, 1, 2, 4, 1, 2, 1, 1] Array 2 [1, 1, 2, 2, 1, 2, 6, 1] Array 1 [1, 3, 1, 1, 1, 1, 2, 1] 我想要的输出是,所有的数组都在一个多维数组中,它们都叠在一起 最终数组= Array 3 Array 2 Array 1 我该怎么做呢?如果我正确理解了你的问题,那么你正在寻找这样的答案: impor

我有三个单独的数组,我想合并成一个多维数组

    Array 3 [1, 1, 2, 4, 1, 2, 1, 1]
    Array 2 [1, 1, 2, 2, 1, 2, 6, 1]
    Array 1 [1, 3, 1, 1, 1, 1, 2, 1]
我想要的输出是,所有的数组都在一个多维数组中,它们都叠在一起

最终数组=

     Array 3
     Array 2
     Array 1

我该怎么做呢?

如果我正确理解了你的问题,那么你正在寻找这样的答案:

import java.util.stream.IntStream;

public class MultiDimensionalArrayDemo {
    
    public static void main(String[] args) {
        final int ROWS = 3;
        final int COLUMNS = 10;

        int array1 [] = {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9};
        int array2 [] = { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
        int array3 [] = { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29};

        int finalArray[][] =  new int[ROWS][];
        finalArray[0] = array1;
        finalArray[1] = array2;
        finalArray[2] = array3;

        System.out.println("Initial bi-dimensional array:");
        for(int i=0; i<ROWS; i++) {
            for(int j=0; j<COLUMNS; j++) {
                System.out.printf("%2d ",finalArray[i][j]);
            }
            System.out.println();
        }

        for(int i=0; i<ROWS-1; i++) {
            for(int j=0; j<COLUMNS; j++) {
                if(finalArray[i][j]==0) {
                    moveColumnUp(IntStream.range(i, ROWS).mapToObj(obj -> finalArray[obj]).toArray(int[][]::new),ROWS-i,j);
                }
            }
        }

        System.out.println("After transformation:");
        for(int i=0; i<ROWS; i++) {
            for(int j=0; j<COLUMNS; j++) {
                System.out.printf("%2d ",finalArray[i][j]);
            }
            System.out.println();
        }
    }

    private static void moveColumnUp(int matrix [][], int numberOfRows, int columnIndex) {
        int firstRowElement = matrix[0][columnIndex]; // temporarily store first row so it can be placed last
        for(int i=0; i<numberOfRows-1; i++) {
            matrix[i][columnIndex] = matrix[i+1][columnIndex];
        }
        matrix[numberOfRows-1][columnIndex] = firstRowElement;
    }
}
import java.util.stream.IntStream;
公共类多维Arraydemo{
公共静态void main(字符串[]args){
最终整数行=3;
最终整数列=10;
int array1[]={0,1,2,3,4,5,6,7,8,9};
int array2[]={10,11,12,13,14,15,16,17,18,19};
int array3[]={20,21,22,23,24,25,26,27,28,29};
int finalArray[][]=新的int[行][];
最终数组[0]=数组1;
finalArray[1]=array2;
最终数组[2]=数组3;
System.out.println(“初始二维数组:”);

对于(int i=0;i)和您尝试过什么?我们帮助您解决问题(或家庭作业),我们不会为您做。请始终包括您自己的努力,而不是将您的要求强加给其他人。这些是什么类型的数组?
int[]
long[]
Integer[]
long[]
?或其他任何东西?这些是Int[]谢谢!!也可以通过向上移动数字来删除顶部和第二层上的零。例如,在列1上,0,10,20变为10,20,0?对不起,我不明白这是否是一个问题。是的,这是一个问题如果我的答案是你想要的,请“接受答案”我相信你在评论中试图做的只是说:finalArray[0]=array2;finalArray[1]=array3;finalArray[2]=array1;而不是:finalArray[0]=array1;finalArray[1]=array2;finalArray[2]=array1;而不是:finalArray[0]=array1;finalArray[1]=array2]=阵列3;