簡體   English   中英

將 3 個數組合並為一個多維數組

[英]Merge 3 arrays into a 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

我該怎么做呢?

如果我正確理解了您的問題,那么您正在尋找這樣的東西:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM